ASP.NET/Web.config:customErrors仅在404上重定向
我有这样一个场景: 一个用户来到我的网站并跟随一个不再存在的链接,他应该被重定向到一个自定义错误页面。(行得通) 如果用户做了一些事情,抛出了一个错误,他应该看到Stacktrace和RealErrorPage 这是我当前的Web.config:ASP.NET/Web.config:customErrors仅在404上重定向,asp.net,.net,mono,web-config,lighttpd,Asp.net,.net,Mono,Web Config,Lighttpd,我有这样一个场景: 一个用户来到我的网站并跟随一个不再存在的链接,他应该被重定向到一个自定义错误页面。(行得通) 如果用户做了一些事情,抛出了一个错误,他应该看到Stacktrace和RealErrorPage 这是我当前的Web.config: <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.web> <cus
<?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”
[……]
但在这种情况下,我想显示stacktrace
我该怎么做
注意:我们使用的是Mono Lighttpd结构的Linux。在以下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>
雷·范·海伦的回答是正确的,但这不是实际问题 不显示stacktrace的原因是mono本身的一个缺陷。没有其他方法可以在stacktrace显示的地方编写自己的错误页面