我有一个完全在本地运行的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 { }
);
答案 0 :(得分:0)
我将代码复制到一个新的webapi项目并且它可以工作。它必定是旧项目的某种配置问题,而不是虚拟机上缺少的依赖项,但我仍然不知道真正的原因。
答案 1 :(得分:0)
之前有一些相关问题,答案是相同的,创建一个新的API项目,但实际问题只有一些可能的原因,HTTP 404 Page Not Found in Web Api hosted in IIS 7.5
很高兴获得项目的差异。