ASP.NET MVC:当 url 以 % 结尾时如何处理 400 错误请求错误

发布于 2024-12-06 02:03:27 字数 226 浏览 0 评论 0原文

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

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

I am trying to handle all HTTP errors to my custom error pages, but I find that when there is a % at the end of url, i cannot use config setting or code to handle it,
for example: http://localhost/abc%
the response is:
Bad Request - Invalid URL
HTTP Error 400. The request URL is invalid.

So, can we use config setting or c# code to handle this error request?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

月下凄凉 2024-12-13 02:03:27

谁说不可能?

Response.TrySkipIisCustomErrors = true;

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

原始帖子

Who said not possible?

Response.TrySkipIisCustomErrors = true;

OR

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

original post

转角预定愛 2024-12-13 02:03:27

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

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

编辑:
抱歉回答错误。我目前有 XP 机器,% 符号显示 404,因此无法验证上面的内容。通过互联网搜索,我发现它根本无法显示 400 状态代码的自定义错误页面。有关详细信息,请参阅服务器故障问题

See this 4 part series for configuring custom error pages within IIS: http://www.dotnetscraps.com/dotnetscraps/post/Did-you-know-Enable-Custom-Error-in-IIS-7-75.aspx.

I personally prefer to use Application_Error event to log the errors and redirect user to custom error pages. Note that you need to use integrated pipe-line in IIS to catch all errors otherwise IIS will show its own error page for resources that are not served by ASP.NET.

EDIT:
Sorry for the wrong answer. I have XP machine currently that shows 404 for % sign so couldn't verify above. Searching over internet, I found that it's simply not possible to display custom error page for 400 status code. See this question from server fault for more information.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文