如果IIS产生400:错误请求,我的HttpModule会被调用吗?

时间:2012-08-08 18:23:16

标签: asp.net iis-6 localhost httpmodule isapi

我有一个ASP.NET网站,无法捕获一些给我带来麻烦的特定请求。该网站调用它也托管的asmx Web服务(因此对(http://localhost/whatever.asmx)进行Web服务调用)。我收到400:Bad Request,所以我想确切地知道正在做什么请求。

我不能使用wireshark这样的东西,因为它是对localhost的调用。我现在正在尝试实现和注册HttpModule来记录请求。我不认为我的HttpModule会被调用这些请求,但当我尝试另一台请求通过的机器时,它每次都会被命中。

在我的HttpModule被击中之前,IIS是否返回400:Bad Request?还有其他东西可以挂钩以便能够记录请求吗?

修改
我开始认为我需要某种ISAPI过滤器或扩展。如果这是适当的行动方案,那么对这方面的一些帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

Per this article,某些错误永远不会到达应用程序错误处理代码。 “基于HTTP的应用程序中发生的某些错误由HTTP API自动处理,而不是传递回应用程序进行处理。出现这种情况是因为此类错误的频率可能会淹没事件日志或应用程序处理程序。”

此类错误的示例:400,大约500,503,连接超时等。

它们似乎只能在HTTP.sys“httperr#.log”文件中使用;同一篇文章描述了这些日志文件的位置和格式。

另请参阅:How to troubleshoot HTTP 400 errors

答案 1 :(得分:0)

它不应该访问实际页面,但IIS仍会在日志中记录该尝试。

日志文件的确切位置不同,可以在IIS管理器中看到。通常IIS日志位于C:\ WINDOWS \ system32 \ LogFiles \ W3SVC1