【发布时间】:2013-12-21 10:08:58
【问题描述】:
web.config 中的 customErrors 默认重定向似乎存在错误。在我的 web.config 文件中,我有以下 customErrors 设置
<customErrors defaultRedirect="~/generalerror.html?" mode="On" />
据我所知,这应该将所有错误发送到自定义 generalerror.html 页面。它似乎适用于一些无效的 URL,例如
http://website.com/?x="<p>"
http://website.com/"<p>"
但是当 URL 中使用“&”时它不起作用并且没有“?” 和有一个HTML标签。所以这个
http://website.com/&x="<p>"
完全忽略 customErrors,您会看到默认的黄色运行时错误,而不是发送到自定义 generalerror.html 页面。如何让这个 URL 也被重定向到自定义错误页面?
如果我在 web.config 中打开 mode="Off" 我会收到以下错误
A potentially dangerous Request.RawUrl value was detected from the client (="/&x="<p>"").
【问题讨论】:
-
HTH! stackoverflow.com/questions/10837647/… stackoverflow.com/questions/9498180/… 你需要记住的是,这个异常是在页面代码发生之前抛出的。因此,您通常无法在页面代码中捕获错误,而只能在 Application_Error 中捕获错误。
-
我目前没有在代码级别做任何事情,但感谢您提供的链接。我只是使用 web.config customerrors 标签将错误重定向到特定页面。从我读过的内容来看,这应该是有效的。事实上,据我所知,它确实有效,除了我给出的非常具体的例子。我只需要找出为什么它不适用于这种情况
-
如果您使用的是 IIS7+,这里有一个更简单的解决方案:- stackoverflow.com/questions/30071341/…
标签: asp.net web-config custom-error-pages