【问题标题】:IIS 8 - customize error 400 (Bad Request)IIS 8 - 自定义错误 400(错误请求)
【发布时间】:2020-11-20 00:28:49
【问题描述】:

请求被 IIS 拦截,它从未命中我的应用程序。

我希望我的错误处理来管理这个错误,而不是 IIS。这可能吗?

我尝试了很多方法,包括这些:

  1. 在我的 Web.config 中:<httpErrors errorMode="DetailedLocalOnly" existingResponse="PassThrough"></httpErrors>

  2. This 也无济于事。

  3. 也是这个配置:

<httpErrors errorMode="DetailedLocalOnly" existingResponse="PassThrough">
    <remove statusCode="400"/>
    <error statusCode="400" path="http://www.google.com" responseMode="Redirect"/>
</httpErrors>
  1. 来自MSDN(IIS 7,IIS 8 文档中没有任何内容):

您无法自定义以下 HTTP 错误消息:400、403.9、 411、414、500、500.11、500.14、500.15、501、503 和 505。

我们可以在这里复制错误:

https://stackoverflow.com/ %%%(您应该复制整个链接,包括无效字符)。

【问题讨论】:

  • 你似乎不太走运:serverfault.com/questions/257680/… 一种可能是在你的负载均衡器上处理这个问题(当然这不会基于 IIS)
  • 感谢@DarinDimitrov。您可以将其发布为答案吗?
  • 我意识到即使 www.bing.com 也没有处理这个问题:D
  • 当然,作为答案发布。

标签: iis error-handling asp.net-mvc-5


【解决方案1】:

您似乎对此不走运,因为以下线程已经显示:https://serverfault.com/questions/257680/properly-handle-iis-request-with-percent-sign-in-url

一种可能的解决方案是在您的负载平衡器上处理此错误代码(当然不会基于 IIS)。

【讨论】:

    【解决方案2】:

    查看我的回答 Custom error page configured in IIS for code 400 (bad request) is ignored

    简而言之,&lt;httpErrors errorMode="Custom" ... 的重定向也适用于 HTTP 400 / 错误请求,并且可以自定义它,除了 IIS 内核阻止的错误(例如错误 URL)

    我不确定它开始工作的 IIS 版本。我在 IIS 10 上对其进行了测试。

    https://stackoverflow.com/% 的例子仍然行不通,但是

    return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 将按预期工作(不会被 IIS 内核阻止)

    【讨论】:

      猜你喜欢
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 2015-05-11
      • 2017-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多