请求被IIS截获,它永远不会到达我的应用程序。
我希望我的错误处理能够管理此错误,而不是IIS。这可能吗?
我尝试过很多东西,包括:
在我的Web.config中:<httpErrors errorMode="DetailedLocalOnly" existingResponse="PassThrough"></httpErrors>
This也没有帮助。
此配置:
<httpErrors errorMode="DetailedLocalOnly" existingResponse="PassThrough"> <remove statusCode="400"/> <error statusCode="400" path="http://www.google.com" responseMode="Redirect"/> </httpErrors>
您无法自定义以下HTTP错误消息:400,403.9, 411,414,500,500.11,500.14,500.15,501,503和505。
我们可以在这里复制错误:
https://stackoverflow.com/ %%%(您应该复制整个链接,包含无效字符)。
答案 0 :(得分:1)
您似乎对此感到不满,因为以下主题已经显示:https://serverfault.com/questions/257680/properly-handle-iis-request-with-percent-sign-in-url
一种可能的解决方案是在负载均衡器处理此错误代码(当然不会基于IIS)。
答案 1 :(得分:1)
请参阅我的回答 Custom error page configured in IIS for code 400 (bad request) is ignored
简而言之,使用const { responseCode, results } = await getPurchaseHistoryAsync(true);
进行的重定向也已经适用于HTTP 400 /错误的请求,并且可以自定义它,但被IIS内核阻止的错误(例如错误的URL)
我不确定它开始起作用的IIS版本。我在IIS 10上进行了测试。
示例<httpErrors errorMode="Custom" ...
仍然无效,但是
https://stackoverflow.com/%
将按预期运行(不会被IIS内核阻止)