IIS httpErrors ExecuteURL将奇怪的查询字符串(如500; http://mysite.com/failed-page)附加到目标URL


8

我注意到IIS错误页面中的行为异常。我有这个设置:

<httpErrors errorMode="Custom" existingResponse="Replace">
 <remove statusCode="500" />
  <error statusCode="500" responseMode="ExecuteURL" path="/error-page" />
</httpErrors>

有时,由于查询字符串太长而导致ASP.NET错误发生时,在尝试执行错误页面URL时立即发生第二个错误。我已经将问题跟踪到IIS将原始URL附加到错误页面URL的事实:

Original: http://example.com/someurl?id=some_very_long_query_string_causing_security_exception
Error: /error-page?500;http://example.com/someurl?id=some_very_long_query_string_causing_security_exception

这是一个巨大的问题。如果原始网址由于查询字符串过长而失败,则带有附加内容的错误页面也会失败,因为它的查询字符串甚至更长!

我相信这是IIS中最愚蠢的错误。有谁知道是否有一些补丁包?最糟糕的情况是,如果现在没有任何解决办法,是否有办法禁用此行为或任何技巧来阻止IIS将未经请求的内容附加到错误页面?因为它破坏了整个自定义错误页面机制。


主席先生,我面临同样的问题。解决了吗
丹尼斯

1
+1我在这里在StackOverflow上问了同样的问题。很想一个答案。
穆罕默德·雷汉

Answers:



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.