首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IIS8.5MVC 5路由'api/controllerName‘提供404未找到错误

IIS8.5MVC 5路由'api/controllerName‘提供404未找到错误
EN

Stack Overflow用户
提问于 2015-04-02 11:09:23
回答 1查看 3K关注 0票数 1

在一个MVC 5 Webapi项目中,我试图使用URL 'api/controllerName‘通过jquery完成一个GET请求。web应用程序托管在默认的网站下,而Website的根是"localhost/myApp“。

路由'api/controllerName‘被转换为’localhost/api/控制员名称‘,而不是’localhost/myApp/api/控制员名称‘抛出404未找到错误

这与IIS 8.5和MVC 5路由有关,因为:

  1. 在IIS 7.5上,同样的设置也能很好地工作
  2. 如果我不使用虚拟目录并直接在默认网站上承载应用程序,则相同的设置在IIS 8.5上运行良好。

我的Global.asax.cs的RegisterRoutes方法如下所示

代码语言:javascript
复制
public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

    }
EN

回答 1

Stack Overflow用户

发布于 2015-04-07 06:27:05

我想出来了。显然,IIS7.5与裸路由'api/controllerName‘工作得很好,但是IIS8.5需要使用@Url.RouteURL实用程序创建一个完全限定的路由,RouteName作为"DefaultApi“。

我将URL替换为

代码语言:javascript
复制
'@Url.RouteUrl("DefaultApi", new { httproute = "", controller = "controllerName"})'

它就像一种魅力(在IIS 7.5和IIS8.5上都是如此)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29411457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档