1

我有一个 HTTP 模块,可以根据它们的内容类型标头清理、压缩和缩小 CSS、JS 和 HTML 文件。它在我的暂存环境和本地主机(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 中。

有任何想法吗?我想暂时避免将我的生产 Web 服务器升级到 IIS 7!

4

2 回答 2

1

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

顺便说一句,我想我会建议您的问题的替代解决方案。创建一个构建脚本,例如使用 MSBuild,并让构建脚本压缩文件。

于 2009-08-28T15:58:11.700 回答
0

开发和生产之间的一个很大区别是流量。

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

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

于 2009-08-28T13:42:33.653 回答