ASP.NET MVC:当 url 以 % 结尾时如何处理 400 错误请求错误
我正在尝试处理自定义错误页面的所有 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
谁说不可能?
或
原始帖子
Who said not possible?
OR
original post
有关在 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.