缺少资源时,不会在IIS上触发EndRequest

时间:2010-02-02 09:50:25

标签: .net asp.net iis-6 http-status-code-404 httpmodule

我有一个HttpModule挂接到IIS6上的EndRequest事件,注册了一个通配符处理程序,只要请求在.aspx页面上结束就可以正常工作,但是如果url丢失则不行(404)。 / p>

我想这是因为staticfilehandler结束了请求,但这个问题有什么好的解决方案吗?

我在IIS7(管道模式)中尝试了相同的解决方案,并且工作正常。

1 个答案:

答案 0 :(得分:0)

我要尝试的第一件事是告诉IIS不要验证文件是否存在,这将允许请求传递给HttpModule。您可以对任何特定的文件映射执行此操作,包括通配符。

如果以上不是一个选项,更糟糕的情况是你可以在web.config中为404错误添加一个默认处理程序,这样如果HttpModule无法捕获事件,你仍然有机会'做一点事'。根据您在EndRequest事件中尝试完成的操作,您仍可以使用该解决方法。

<customErrors defaultRedirect="ErrorPage.aspx" mode="On">   
    <error statusCode="404" redirect="filenotfound.aspx" />
</customErrors>