2011-08-04 42 views
17

我有一个ASP.NET MVC站点的问题。IIS上的ASP.NET MVC通过静态文件处理程序

这些都是细节:

  1. ASP.NET MVC 2
  2. ASP.NET 4集成的管线
  3. 的Windows Web服务器IIS 7.5 2008 R2

每当我做请求应用程序我得到“HTTP错误404.0 - 未找到” - 错误和详细的错误信息显示它是报告错误的静态文件处理程序:

  • 模块:IIS Web核心
  • 通知: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。

那么有什么想法?

回答

-7

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

+2

你能在解决扩大?例如,global.asax有什么变化? –

+2

请提供一些更多信息请 –

+0

解决方案似乎并不真正解决问题。 – jakejgordon

24

我看你定你的问题,但对任何人使用Google:

我有这个问题,在我来说,我只是需要与IIS注册ASP.NET 4。我正在删除并重新添加网络来解决其他问题,只是忘了这么做。为我工作的命令是:

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

你自己的.NET版本可能会有所不同,特别是如果你在未来,所以上述路径可能并不完全正确。

+1

我认为版本号在这里很重要。我尝试了相同的,但在错误的.NET Framework版本。只是把它放在这里,以防有人错过了这一点。这对我有效。 – snakepitbean

13

我有同样的问题,当我之后安装IIS 安装Visual Studio等

我能够改变我的网站来解决这个问题。配置文件,加入runAllManagedModulesForAllRequests="true"<modules>标签:

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"> 
     ... 
    </modules> 
</system.webServer> 

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

+1

它突然开始工作。魔术我说! – Edgar

+1

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

+0

只要反驳@ user3285954的评论,增加的内存和CPU使用率几乎总是可以忽略不计。我曾经在一些相当高流量的网站上工作过,而这个设置从来没有给我造成任何问题。我建议先尝试一下,看看它是否确实会造成性能问题;它可能不会。 – Ryan

相关问题