记录的ASP.NET异常中的奇怪请求URL,但在IIS日志中没有

时间:2010-10-14 17:14:03

标签: asp.net iis exception

获取合法异常的未处理异常事件日志消息,但事件日志消息在请求URL中包含噪声。

噪声是在uri逃逸角色的地方注入的。类似于apppool名称的噪音,“发生了未处理的异常。”,False,有时请求url本身递归注入,有时在url内部十几次。 IIS日志不会显示此注入,只显示原始URL。

这是一个递归示例:

请求网址:http://domain.com/Page.aspx?q=bransonAn发生了未处理的异常.Chttp://domain.com/Page.aspx?q = bransonAn发生了未处理的异常.Chttp://domain.com/Page.aspx?q = bransonAn发生了未处理的异常.Chttp://domain.com/Page.aspx?q = branson%2C%20momomomo

关于代码的一个有点不寻常的事情是它使用了一个异常过滤器,它执行一些日志记录然后返回false,允许异常处理未处理。

1 个答案:

答案 0 :(得分:2)

我遇到了与上述相同的问题,几天后在Google上提出了导致它的原因(反正对我而言)并认为我会分享 - 尽管这个讨论已经过了一年多老。

这是由查询字符串中包含的空格引起的,这些空格已更改为%20 。当代码中出现异常时,似乎IIS(或Visual Studio 2008中的Development Server)可能假设%20 是要传递给异常处理程序的参数并建立一个看起来很疯狂的请求URL - 它总是在日志中包含 82次,而我搜索的位置没有提到这一点。

在web.config中,可以通过全球化部分管理编码,但这并没有解决我们的问题 - 事实证明,如果你使用RFC2396,那么你就不会得到这个问题。我们现在用不可破坏的空格字符替换我们的空格,这在我们的测试中一直有效。