我有一个HttpModule挂接到IIS6上的EndRequest事件,注册了一个通配符处理程序,只要请求在.aspx页面上结束就可以正常工作,但是如果url丢失则不行(404)。 / p>
我想这是因为staticfilehandler结束了请求,但这个问题有什么好的解决方案吗?
我在IIS7(管道模式)中尝试了相同的解决方案,并且工作正常。
答案 0 :(得分:0)
我要尝试的第一件事是告诉IIS不要验证文件是否存在,这将允许请求传递给HttpModule。您可以对任何特定的文件映射执行此操作,包括通配符。
如果以上不是一个选项,更糟糕的情况是你可以在web.config中为404错误添加一个默认处理程序,这样如果HttpModule无法捕获事件,你仍然有机会'做一点事'。根据您在EndRequest事件中尝试完成的操作,您仍可以使用该解决方法。
<customErrors defaultRedirect="ErrorPage.aspx" mode="On">
<error statusCode="404" redirect="filenotfound.aspx" />
</customErrors>