IIS 7.5 上的 MVC5 路由错误 (404.0) 错误

Posted

技术标签:

【中文标题】IIS 7.5 上的 MVC5 路由错误 (404.0) 错误【英文标题】:MVC5 routing error (404.0) error on IIS 7.5 【发布时间】:2015-02-02 21:26:15 【问题描述】:

一个古老的故事在开发机器上一切正常,但在主机服务器上却不行。

HTTP 错误 404.0 - 未找到

模块 IIS Web 核心 通知MapRequestHandler 处理程序静态文件 错误代码0x80070002

通过将<remove name="UrlRoutingModule-4.0" /> 添加到system.webServer - 模块 并在添加<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" /> 时解决它,尝试在开发机器上产生相同的错误,但这在主机上不起作用。我也尝试过<modules runAllManagedModulesForAllRequests="true" />,但没有任何改变。

这里是 handlers 部分:

<handlers>
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <remove name="OPTIONSVerbHandler" />
      <remove name="TRACEVerbHandler" />
      <remove name="WebDAV" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
      <add name="MiniProfiler" path="mini-profiler-resources/*" verb="*" type="System.Web.Routing.UrlRoutingModule" resourceType="Unspecified" preCondition="integratedMode" />
</handlers>

更多信息:

MVC.Net 5.2.2.0 Windows 2008 上的 IIS 7.5 集成的 .Net 4.0 应用程序池。

我还有什么需要做的吗?

现在,在 IIS8 中遇到了同样的问题,知道吗?

【问题讨论】:

更新:主机已经解决了我的问题,无需对我的 web.config 或库进行任何更改。我在问他们是怎么做到的,但还没有答案! 你是怎么解决这个问题的,可以分享一下吗?提前致谢。 我有一个共享主机,但他们没有告诉我他们是如何解决的。它应该是一些服务器配置或配置错误。对不起,我不能再帮忙了:( 我面临同样的问题,不知道如何解决。 下次试试看是否安装了ISAPi模块:Web server > modules如果没有,可以通过服务器管理工​​具安装:Role-based installation 【参考方案1】:

我有类似的问题。原来是与虚拟文件夹名称和我为调用 Web API 路由而构建的 URL 不一致:

var URLGetUserAccesses = "/api/Login/GetUserAccesses";

对比

var URLGetUserAccesses = "../api/Login/GetUserAccesses";

【讨论】:

以上是关于IIS 7.5 上的 MVC5 路由错误 (404.0) 错误的主要内容,如果未能解决你的问题,请参考以下文章

Windows Server 2008 IIS 7.5 HTTP 错误 404.3 - Not Found解决办法

Windows Server 2008 IIS 7.5 HTTP 错误 404.3 - Not Found解决办法

HTTP错误 404.17 - Not Found" IIS 7.5 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理

如何确保使用 ASP.NET MVC5 和 IIS 7.5 express 刷新 CSS 文件

在 IIS 7.5 中托管的 Web Api 中找不到 HTTP 404 页面

MVC 5 IIS 7.5 双跳问题(避免硬编码 SQL 密码)