我有一个在本地完美运行的 ASP.NET MVC 项目。它有一些从 Controller 继承的控制器和一些从 ApiController 继承的控制器。我的路线如下。当我在本地通过 Visual Studio 运行项目时,它运行良好。我可以点击所有端点并获得预期的响应。当我将它部署到云服务器(Windows Server 2008 r2)时,只有 :Controller 端点工作(位于 /p/{controller}/{action} 的端点)。任何 :ApiController 的端点都不起作用。我得到所有这些错误:
{"$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'."}
我的路线:
在 RouteConfig.cs 中:
routes.MapRoute(
name: "Default",
url: "p/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Redirect", id = UrlParameter.Optional }
);
在 WebApiConfig.cs 中:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}",
defaults: new { }
);