静态文件的HTTPModule有时无法在IIS 6上运行

时间:2009-08-28 13:37:45

标签: asp.net iis iis-6 httpmodule isapi

我有和HTTP模块根据内容类型标题清理,压缩和缩小CSS,JS和HTML文件。它在我的登台环境和localhost(ISS7,经典管道模式)中运行良好。在IIS 6(生产)上,它不可靠。偶尔,这个静态文件停止由asp.net处理,并且似乎恢复到默认的IIS处理程序。如果我触摸web.config或执行IISRESET,它将再次开始正常工作。即使模块进入这种“古怪的状态”,.aspx文件仍然按预期运行在模块中。所以,我相当肯定该模块不是问题,我们正在看的是IIS问题。

  1. 我在IIS 6中映射了HTML,JS和CSS文件,由aspnet_isapi.dll为所有动词处理。
  2. 在我的web.config中,我已将这些静态文件设置为处理程序部分中的System.Web.StaticFileHandler,也适用于所有动词。
  3. HTTP模块也在web.config中连接。
  4. 有什么想法吗?我想暂时避免将生产Web服务器升级到IIS 7!

2 个答案:

答案 0 :(得分:1)

我非常有信心地说,问题在于你的HttpModule。也许问题可能是一个线程问题。 HttpModule仅对所有请求实例化一次,因此如果将数据存储在类中的成员变量中,则会出现问题,因为多个线程将同时访问相同的数据。

顺便说一下,我想我会建议您解决问题。使用例如创建构建脚本MSBuild,让构建脚本压缩文件。

答案 1 :(得分:0)

开发和生产之间的一个巨大差异是流量。

Volume可以突出显示在低流量开发测试中未遇到的并发问题。

您确定您的代码没有线程问题等。