Tôi có một dự án ASP.NET MVC chạy hoàn toàn cục bộ. Nó có một số bộ điều khiển kế thừa từ Bộ điều khiển và một số bộ điều khiển kế thừa từ ApiController. Các tuyến đường của tôi dưới đây. Khi tôi chạy dự án thông qua Visual Studio cục bộ, nó hoạt động hoàn hảo. Tôi có thể nhấn tất cả các thiết bị đầu cuối và nhận phản hồi dự kiến. Khi tôi triển khai nó vào một máy chủ đám mây (Windows Server 2008 r2), chỉ có: Các điểm cuối của trình điều khiển hoạt động (các điểm cuối tại/p/{controller}/{action}). Không có điểm cuối nào tại bất kỳ: ApiController hoạt động. Tôi nhận được lỗi sau cho tất cả trong số họ:Điểm cuối MVC WebApi không hoạt động trên sản xuất, nhưng điểm cuối thông thường làm
{"$id":"1","Message":"No HTTP resource was found that matches the request URI 'http://DOMAIN/CONTROLLER'.","MessageDetail":"No type was found that matches the controller named 'CONTROLLER'."}
tuyến đường của tôi:
Trong RouteConfig.cs:
routes.MapRoute(
name: "Default",
url: "p/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Redirect", id = UrlParameter.Optional }
);
Trong WebApiConfig.cs:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}",
defaults: new { }
);
Các tuyến đường có thể bị lẫn lộn vì bạn không sử dụng tiền tố cho bộ điều khiển Web Api. Tôi đề nghị bạn hãy thử hoặc với một tiền tố trong Web Api như dự án mặc định, nơi routeTemplate: "api/{controller}" hoặc vô hiệu hóa các tuyến đường MVC và thử Web Api một mình. – tucaz
đã thử cả hai, không hoạt động – carlbenson
Bạn đã cài đặt Elmah chưa? Bạn có thấy bất kỳ lỗi nào không? –