2012-02-15 69 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> 
相關問題