MVC5在IIS 7.5上出现路由错误(404.0)

4

有一个关于在开发环境上一切都能正常工作,但在主机服务器上不能正常工作的老故事。

enter image description here

HTTP错误404.0 - 未找到

  • Module IIS Web Core
  • Notification MapRequestHandler
  • Handler StaticFile
  • Error Code 0x80070002

尝试通过添加<remove name="UrlRoutingModule-4.0" />system.webServer - modules并在添加<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或库进行任何更改。我正在询问他们是如何做到的,但还没有得到答案! - Babak
你是怎么解决那个问题的?能否分享一下吗?先谢谢了。 - Kamrul Hasan
我有一个共享主机,他们没有告诉我他们是如何解决的。这应该是一些服务器配置或错误配置。很抱歉,我不能再提供帮助了 :( - Babak
我也遇到了同样的问题,不确定该如何解决。 - sham
下次请尝试检查是否已安装ISAPi模块: Web服务器>模块 如果没有这样的记录,您可以通过服务器管理工具进行安装: 基于角色的安装 - Andrey Zaytsev
1个回答

0

我曾经遇到过类似的问题。后来发现是虚拟文件夹名称与我构建用于调用Web API路由的URL不一致:

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

对比

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接