MVC WebApi端点不适用于生产,但常规端点可以

时间:2013-05-02 16:32:39

标签: c# asp.net .net asp.net-mvc asp.net-web-api

我有一个完全在本地运行的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 { }
    );

2 个答案:

答案 0 :(得分:0)

我将代码复制到一个新的webapi项目并且它可以工作。它必定是旧项目的某种配置问题,而不是虚拟机上缺少的依赖项,但我仍然不知道真正的原因。

答案 1 :(得分:0)

之前有一些相关问题,答案是相同的,创建一个新的API项目,但实际问题只有一些可能的原因,HTTP 404 Page Not Found in Web Api hosted in IIS 7.5

很高兴获得项目的差异。