IIS上的ASP.NET MVC属于静态文件处理程序

Jac*_*hde 20 iis-7 asp.net-mvc-2

我有一个ASP.NET MVC站点的问题.

这些是细节:

  1. ASP.NET MVC 2
  2. ASP.NET 4集成管道
  3. Windows Web Server 2008 R2上的IIS 7.5

每当我发出应用程序请求时,我都会收到"HTTP错误404.0 - 未找到"错误,详细错误信息显示它是报告错误的静态文件处理程序:

  • 模块:IIS Web Core
  • 通知:MapRequestHandler
  • 处理程序:StaticFile
  • 错误代码:0x80070002

意味着请求永远不会进入MVC堆栈.

我应该注意到,IIS已经在同一个应用程序池上运行ASP.NET MVC 3,在ASP.ENT 2应用程序池上运行MVC 2.因此,ASP.NET 4应用程序池中的组合ASP.NET 2令我头疼.

基本上我想将应用程序从ASP.NET 2.0应用程序池上的ASP.NET MVC 2升级到ASP.NET 4.0应用程序池上的ASP.NET MVC 2.

那么任何想法?

Chr*_*ris 29

我看到你解决了你的问题,但对任何人谷歌搜索:

我有这个问题,在我的情况下,我只需要在IIS中注册ASP.NET 4.我正在删除并重新添加网络以修复其他问题而忘记这样做.对我有用的命令是:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -i

您自己的.net版本可能会有所不同,特别是如果您将来,所以上述路径可能不完全正确.


Rya*_*yan 13

安装Visual Studio等安装IIS 遇到了同样的问题.

我能够通过更改我的Web.config文件,添加runAllManagedModulesForAllRequests="true"<modules>标记来解决问题:

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

(更多细节/从这里复制:http://www.west-wind.com/weblog/posts/2011/Mar/27/ASPNET-Routing-not-working-on-IIS-70)

  • 不应设置此选项,因为_all_请求的结果包括将所有静态文件发送到托管处理程序,这会导致内存和CPU使用量增加.可能会在低流量站点上被忽视,但一旦IIS将每秒服务兆字节的图像,html,js,css和其他静态内容,服务器将崩溃. (3认同)

Jac*_*hde -7

所以我发现了错误。根目录中有一个剩余的默认文档,这对于使用集成管道的应用程序来说是不必要的。另外,还需要对 Global.ascx 和路由注册进行一些更改,但之后它就起作用了。

  • 您能扩展一下解决方案吗?例如,global.asax 发生了什么变化? (2认同)