【发布时间】:2014-03-07 06:11:51
【问题描述】:
我收到静态内容请求的 HTTP 500 错误,特别是 .css 和 .js。我开始监视 HTTP 请求,发现当请求 css 或 js 时,服务器正在返回 text/html。
我正在运行 IIS 7.0、.NET 4.0 和 Windows Server 2008。
所有MIME 设置在IIS 中都是正确的。处理程序映射看起来也正确:
Name = Static File
Path = *
State = Enabled
Path Type = File or Folder
Handler = StaticFileModule,DefaultDocumentModule,DirectoryListingModule
Entry Type = Inherited
我还验证了StaticFileModule 在模块中,并检查了static.dll 在c:\windows\system32\inetsrv\static.dll 中。
我能想出的唯一解决方法是将web.config硬编码到我的网站中:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<add name="javascript" verb="*" path="*.js" type="System.Web.StaticFileHandler" preCondition="integratedMode" />
<add name="css" verb="*" path="*.css" type="System.Web.StaticFileHandler" preCondition="integratedMode" />
<add name="png" verb="*" path="*.png" type="System.Web.StaticFileHandler" preCondition="integratedMode" />
<add name="bmp" verb="*" path="*.bmp" type="System.Web.StaticFileHandler" preCondition="integratedMode" />
<add name="gif" verb="*" path="*.gif" type="System.Web.StaticFileHandler" preCondition="integratedMode" />
</handlers>
....
</system.webServer>
但是,如果没有这个,它应该可以工作...过去有,现在在其他环境中也可以。
【问题讨论】:
-
"过去有,现在在其他环境中也有" 那么发生了什么变化?
-
我希望我知道。唯一让我印象深刻的两件事是,我们在其下运行应用程序池的帐户,有一天我们在活动目录中移动了一点,但一切都恢复了原来的样子。那个,我们上周也停电了。