我正在尝试处理自定义错误页面的所有 HTTP 错误,但我发现当 url 末尾有 % 时,我无法使用配置设置或代码来处理它,例如:http://localhost/abc % 响应为:错误请求 - 无效 URL HTTP 错误 400。请求 URL 无效。
那么,我们可以使用配置设置或 c# 代码来处理这个错误请求吗?
我正在尝试处理自定义错误页面的所有 HTTP 错误,但我发现当 url 末尾有 % 时,我无法使用配置设置或代码来处理它,例如:http://localhost/abc % 响应为:错误请求 - 无效 URL HTTP 错误 400。请求 URL 无效。
那么,我们可以使用配置设置或 c# 代码来处理这个错误请求吗?
谁说不可能?
Response.TrySkipIisCustomErrors = true;
或者
<configuration>
<system.webServer>
<httpErrors existingResponse="PassThrough" />
</system.webServer>
</configuration>
请参阅此 4 部分系列以在 IIS 中配置自定义错误页面: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 状态代码的自定义错误页面。有关更多信息,请参阅服务器故障中的此问题。