HTTPModule每页只调用一次

时间:2010-08-15 13:11:38

标签: asp.net iis httpmodule

我正在尝试为ASP.NET实现自定义HTTPModule。我有一个非常简单的html页面,其中包含一个图像和一个挂钩到BeginRequest事件的HTTPModule。当我使用Visual Studio的开发Web服务器进行调试时,我的模块被调用两次:一次用于初始页面请求,然后一次用于图像请求。这是我的预期。但是,当我将我的应用程序部署到IIS时,该模块仅针对页面请求被调用一次。我不明白为什么。有任何想法吗?感谢。

2 个答案:

答案 0 :(得分:3)

我猜你正在使用经典管理流水线模式的IIS6或IIS7。在这种情况下,您的ASP.NET应用程序仅接收mapped to isapi.dll的请求。通常,这些包含具有以下扩展名的请求:aspxashxasmx,...查看here以获取更多信息。

其他扩展的请求由IIS直接处理,因此它们永远不会到达您的HTTP模块(作为ISAPI扩展的一部分运行)。

在IIS7及更高版本中,Microsoft已将管道集成到IIS中。这意味着所有请求都会传递整个ASP.NET管道。

另一种可能性是你的图像被缓存在某处,如Jon所建议的那样。

答案 1 :(得分:0)

要检查的第一件事是:实际上是否正在联系服务器以获取图像?它在客户端缓存中吗?

要检查的第二件事:它可能是在服务器端缓存吗?

尝试直接在浏览器中加载图片本身的网址...并在最后添加类似?foo=bar的内容以执行一些原始缓存清理。