0

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

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

IIS 在我的 HttpModule 被命中之前返回 400: Bad Request 吗?还有什么我可以挂钩来记录请求的吗?

编辑:
我开始认为我需要某种 ISAPI 过滤器或扩展。对此一无所知,如果这是适当的行动方案,将不胜感激。

4

2 回答 2

2

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

此类错误的示例:400、一些 500、503、连接超时等。

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

另请参阅:如何解决 HTTP 400 错误

于 2012-09-06T15:47:27.473 回答
0

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

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

于 2012-08-08T18:50:03.717 回答