asp.net-mvc - 为什么 IIS 会针对 403 错误显示它自己的错误消息,而不是依赖于我的 customErrors 元素?
问题描述
我收到一个请求http://example.com/%2f..%2fwindows%2fsomething.ini
,IIS 显示“禁止 URL - HTTP 错误 403。请求 URL 被禁止。”
我认为这个请求在 IIS 级别被阻止。我怎样才能让 IIS 让这个错误发生在我的应用程序中,以便我可以显示我的应用程序其余部分使用的错误页面?使用 web.config 中的 customErrors 属性,404 错误按预期顺利解决:
<customErrors mode="RemoteOnly" defaultRedirect="~/content/error.html">
</customErrors>
如果我输入一个更简单的无效 URL,http://example.com/asdfasdfas/asdfasdf
那么我的 customErrors 处理程序会根据需要启动。
解决方案
403 是 iis 错误。看起来你的 asp.net 错误没有触发。您可以尝试在 web.config 文件中添加以下代码:
<httpErrors existingResponse="Replace" defaultResponseMode="ExecuteURL" errorMode="Custom">
<remove statusCode="403"/>
<error statusCode="403" path="/errorpage.aspx" responseMode="ExecuteURL"/>
您还可以使用 iis 管理器来修改更改:
1)打开iis管理器,选择你的站点。
2)双击错误页面。
3)按照以下建议或根据您的要求设置错误页面。
推荐阅读
- python - 有没有办法绘制与相同颜色同名的列?
- node.js - 用于生产用途的打字稿项目
- java - 使用弹簧注释确认密码
- python - 如何解决没有这样的列:todo_todo.title
- mysql - MySQL 组从季度到期间
- python - 数据框递归地计算带有条件的值[复杂的逻辑]
- c# - 使用 ssh.net 长文本执行命令如何解析这个退格?
- email - 有没有办法以编程方式验证 EWS 服务器 URL?
- javascript - 如何设置在箭头函数外部定义的变量的值(Axios、react、javascript)
- node.js - Stripe - 有没有办法获得当前/特定月份的产品收入?