2012-02-15 68 views
7

只能重定向我有这样的场景:ASP.NET/Web.config中:对的customErrors 404

用户来到我的网站和followes链接,至极犯规了存在的,他应该被重定向到一个自定义的errorPage 。 (that works)

如果用户做了某些事情,会引发错误,他应该看到Stacktrace和真正的Errorpage。

这是我的当前的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”配置文件中创建标记。这个标签应该将其“模式”属性设置为“关”。

[...]

但在这种情况下,我想展示的堆栈跟踪。

我怎样才能做到这一点?

注:我们在Linux上使用Mono < - FastCGI - > Lighttpd构建。

回答

0

Ray Van Halens答案是正确的,但这不是实际问题。

不显示堆栈跟踪的原因是单声道本身的错误。没有其他的方法,然后写一个自己的错误页面的堆栈跟踪显示。

13

在下面的web.config项,未找到(404)条件将用户发送到PageNotFound.aspx

使用模式=“关”,每个人(本地和远程用户)会看到错误的详细信息。

<customErrors mode="Off"> 
    <error statusCode="404" redirect="~/errorPages/PageNotFound.aspx" /> 
</customErrors> 

使用模式=“仅限远程”和本地用户会看到一个堆栈跟踪和编译的细节详细的错误页面。远程用户将出现GeneralError.aspx页面

<customErrors mode="RemoteOnly" defaultRedirect="~/errorPages/GeneralError.aspx"> 
    <error statusCode="404" redirect="~/errorPages/PageNotFound.aspx" /> 
</customErrors> 
相关问题