代码之家  ›  专栏  ›  技术社区  ›  smercer

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

  •  1
  • smercer  · 技术社区  · 17 年前

    我有一个HTTP模块,它根据CSS、JS和HTML文件的内容类型头来清理、压缩和缩小这些文件。它在我的登台环境和本地主机(ISS7,经典管道模式)中工作得很好。在IIS 6(生产)上,它不可靠。偶尔,asp会停止处理这些静态文件。net并似乎正在还原为默认的IIS处理程序。如果我触碰网络。配置或执行IISRESET它将再次正常工作一段时间。即使当模块进入这种“古怪状态”时。aspx文件仍按预期在模块中运行。因此,我相当确定模块不是问题所在,我们正在研究的是IIS问题。

    1. 我在IIS 6中映射了HTML、JS和CSS文件,由aspnet_isapi处理。所有动词的dll。
    2. 在我的网上。配置,我已经将这些静态文件设置为由系统处理。网状物处理程序部分中的StaticFileHandler也适用于所有动词。
    3. HTTP模块通过网络连接起来。配置也一样。

    有什么想法吗?我想暂时避免将我的生产web服务器升级到IIS 7!

    2 回复  |  直到 17 年前
        1
  •  1
  •   Pete    17 年前

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

    顺便说一句,我想我会为你的问题提出另一种解决方案。使用例如MSBuild创建生成脚本,并让生成脚本压缩文件。

        2
  •  0
  •   AnthonyWJones    17 年前

    开发和生产之间的一大区别是交通量。

    卷可以突出显示低流量开发测试中没有遇到的并发问题。

    你确定你的代码没有线程问题吗。

    推荐文章