【问题标题】:ASP.NET MVC: How to handle 400 bad request error when url end with %ASP.NET MVC:当 url 以 % 结尾时如何处理 400 错误请求错误
【发布时间】:2011-09-22 07:39:52
【问题描述】:

我正在尝试处理自定义错误页面的所有 HTTP 错误,但我发现当 url 末尾有 % 时,我无法使用配置设置或代码来处理它, 例如:http://localhost/abc% 回应是: 错误请求 - 无效的 URL HTTP 错误 400。请求 URL 无效。

那么,我们可以使用配置设置或c#代码来处理这个错误请求吗?

【问题讨论】:

  • 您使用什么版本的 IIS?您还可以在 IIS 本身中配置自定义错误页面。
  • 我使用的是 IIS 7.5,asp.net 4.0。
  • 这个错误在现实生活中不应该发生。你见过这种情况吗?

标签: asp.net bad-request


【解决方案1】:

谁说不可能?

Response.TrySkipIisCustomErrors = true;

<configuration>
  <system.webServer>
    <httpErrors existingResponse="PassThrough" />
  </system.webServer>
</configuration>

original post

【讨论】:

    【解决方案2】:

    有关在 IIS 中配置自定义错误页面的 4 部分系列:http://www.dotnetscraps.com/dotnetscraps/post/Did-you-know-Enable-Custom-Error-in-IIS-7-75.aspx

    我个人更喜欢使用Application_Error event 来记录错误并将用户重定向到自定义错误页面。请注意,您需要在 IIS 中使用集成管道来捕获所有错误,否则 IIS 将针对 ASP.NET 未提供的资源显示其自己的错误页面。

    编辑: 抱歉回答错误。我目前的 XP 机器显示 404 表示 % 符号,因此无法在上面进行验证。通过互联网搜索,我发现 无法显示 400 状态代码的自定义错误页面。请参阅this question from server fault 了解更多信息。

    【讨论】:

    • 您好 VinayC,感谢您的快速响应,但看起来此解决方案不适用于以 % 结尾的请求,您确定它有效吗?
    • @Andy,抱歉回答错误。显然,它不可能有 400 状态代码的自定义错误页面。有关更多信息,请参阅此链接:serverfault.com/questions/257680/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 2011-03-09
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    相关资源
    最近更新 更多