我有这样的场景:
用户访问我的网站并点击不再存在的链接,他应该被重定向到自定义错误页面。 (这样可行)
如果用户执行某些操作,引发错误,他应该看到堆栈跟踪和真正的错误页面。
这是我当前的 Web.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<customErrors>
<error statusCode="404" redirect="/errors/404.htm" />
</customErrors>
<compilation debug="true" strict="false" explicit="true" />
</system.web>
</configuration>
使用此配置,404 将被重定向到正确的站点,但 HTTP 500 将显示如下:
“/”应用程序中的服务器错误
描述:服务器上发生应用程序错误。此应用程序的当前自定义错误设置阻止远程查看应用程序错误的详细信息(出于安全原因)。但是,它可以通过本地服务器计算机上运行的浏览器查看。
详细信息:要在远程计算机上查看此特定错误消息的详细信息,请在位于当前 Web 应用程序根目录的“web [.config”配置文件中创建一个标记。然后,该标签应将其“mode”属性设置为“Off”。
[...]
但在本例中我想显示堆栈跟踪。
我怎样才能做到这一点?
Note:我们在 Linux 上使用 Mono Lighttpd 构建。
在以下 web.config 条目中,未找到 (404) 条件会将用户发送至 PageNotFound.aspx
使用 mode="Off",每个人(本地和远程用户)都会看到错误详细信息。
<customErrors mode="Off">
<error statusCode="404" redirect="~/errorPages/PageNotFound.aspx" />
</customErrors>
使用 mode="RemoteOnly" ,本地用户将看到详细的错误页面,其中包含堆栈跟踪和编译详细信息。远程用户将看到 GeneralError.aspx 页面
<customErrors mode="RemoteOnly" defaultRedirect="~/errorPages/GeneralError.aspx">
<error statusCode="404" redirect="~/errorPages/PageNotFound.aspx" />
</customErrors>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)