当我将“启用32位应用程序”更改为False时,为什么我的IIS 7拒绝提供css或js

时间:2012-02-07 00:30:39

标签: asp.net asp.net-mvc iis iis-7 application-pool

我有一个非常简单的Web应用程序(asp.net MVC3,.net 4,使用IIS而不是Visual Studio的嵌入式服务器,64位Windows 7)。当我更改我的应用程序的应用程序池中的设置并将“启用32位应用程序”设置为False时,我的应用程序的视图显示,但没有静态内容(Content / Site.css或Scripts / myScript.js)显示起来。相反,我在这些请求上获得状态代码500.

HTTP错误500.0 - 内部服务器错误 由于发生内部服务器错误,无法显示页面。

我正在更改此值的原因是我正在尝试使用64位Oracle.DataAccess.dll,如果我将此值设置为True,则会导致应用程序池在WOW64模式下运行并尝试以错误的格式加载dll。

我在网上搜索了一段时间,找不到很多关于此的信息。我试过玩文件的权限,我尝试用各种标志运行aspnet_regiis。我没有想法。在64位模式下运行时,为什么IIS不会提供此静态内容?

4 个答案:

答案 0 :(得分:17)

当我遇到此错误时,web.config中的system.webServer \ staticContent出现问题。

由于服务器之间存在差异,因此在一台计算机上需要使用特定MIME类型,但在另一台计算机上却出现此错误。

故障保护是在web.config中包含一个for,以避免在不需要时获得500.

答案 1 :(得分:4)

很可能在您的IIS设置中,您意外安装了仅32位模块,这会阻止整个Web应用程序在64位模块中运行。这是导致500次错误的常见原因。

失败的请求跟踪应该能够向您显示有关哪个模块的更多信息,

http://www.iis.net/learn/troubleshoot/using-failed-request-tracing/troubleshooting-failed-requests-using-tracing-in-iis

答案 2 :(得分:3)

双重检查mime类型是否正确分配,可能是因为您有本地站点web.config和服务器本身的双重mimetypes条目。

答案 3 :(得分:1)

我必须在这里发表评论,因为我没有足够的评论意见。

您是否尝试过检查网站上的处理程序映射。

Under Handler Mappings:检查StaticFile处理程序是否仍然已注册,路径是否已分配给*

同时检查它是否已启用。