6

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

2 回答 2

0

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

于 2013-05-06T19:34:47.583 回答
0

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

很高兴获得项目的差异。

于 2013-05-11T02:33:43.820 回答