在MVC网站上获得404错误

RB.*_*RB. 12 asp.net-mvc iis-7 asp.net-mvc-2

我在Windows Server 2008上有一个IIS7.5网站,部署了一个ASP.NET MVC2网站.该网站是在Visual Studio 2008中构建的,面向.NET 3.5,并且IIS 5.1已成功配置为运行它,用于本地测试.

但是,每当我尝试导航到IIS7中运行的页面时,我都会收到404错误.

我检查过以下内容:

  • IIS日志中没有相应的404日志条目.
    • 实际上,IIS日志中 404个条目.
  • Web站点的应用程序池设置为使用Integrated管道.
  • "customErrors"模式设置为off.
  • 已安装.NET 3.5 SP1
  • ASP.NET MVC 2已安装
  • 我已经使用MVC Diagnostics来确认正在找到所有MVC DLL.
  • 在IIS中启用了ASP.NET,我们通过运行MVC诊断页面证明了这一点.
  • KB 2023146确实突出显示HTTP重定向已关闭,因此我们已将其打开,但没有任何乐趣.

编辑 好了,所以我们安装了世界上最简单的MVC应用程序(在Visual Studio中创建新的MVC2项目时创建的应用程序),我们仍然在我们尝试访问的任何页面上获取404 - 例如, <my_server>/Home/About将生成404 .

任何想法将不胜感激!

Sam*_*les 14

这通常是由web.config中的以下缺失引起的:

<system.webServer>
   <modules runAllManagedModulesForAllRequests="true"/> 
Run Code Online (Sandbox Code Playgroud)


Jak*_*cki 10

你只有1页的问题或整个网站不工作?

A)1页

B)整个场地

  • 我假设你正在使用Windows Server - 检查IIS是否启用了ASP.NET - 我相信它默认是禁用的.

  • 您可以使用MvcDiagnostics页面检查是否正确部署了所有dll.

  • 你在IIS7 集成模式下运行吗?IIS7的经典模式不会自动将无扩展名的URL映射到ASP.NET(很像IIS6)

  • 确保正确配置了Web.config标记.


RB.*_*RB. 8

我们最终通过导出工作服务器的IIS配置并将其与我们的服务器进行比较来解决此问题.

这是一个非常模糊的设置,已从默认设置更改.

IIS ROOT→请求过滤→文件扩展名选项卡→编辑功能设置→允许未列出的文件扩展名

这应该勾选.

这可以在IIS级别或站点级别设置.

IIS的屏幕截图,显示请求筛选选项的位置