2009-04-20 49 views
2

在我運行的站點上,我將404和500錯誤映射爲重定向到最終用戶的自定義錯誤頁面;在我的web.config中使用以下代碼:爲ASP.Net中的特定頁面定製錯誤處理

... 
... 

<system.web> 
    <customErrors defaultRedirect="/404/default.aspx" mode="RemoteOnly"> 

    <error statusCode="404" redirect="/404/default.aspx" /> 

    </customErrors> 

    ... 
    ... 

但是,我有一個特定頁面,我不想重定向;一個健康檢查頁面,以確保該網站100%可操作。我嘗試使用下面的代碼在我的web.config中設置位置特定的自定義錯誤處理程序:

... 
... 

    </system.web> 
    <location path="health.aspx"> 
    <system.web> 
     <customErrors defaultRedirect="" mode="RemoteOnly"></customErrors> 
    </system.web> 
    </location> 
... 
... 

但是,它似乎不起作用。當我將health.aspx重命名爲badhealth.aspx等其他內容時,請提出請求,我希望通過「死亡黃頁」頁面獲得一個通用的404錯誤。同樣,通過故意更改代碼來引發錯誤,我應該通過YSOD頁面獲得500錯誤。在這兩種情況下,我最終都被重定向到我們的自定義404頁面,然後獲得YSOD。思考?

任何幫助,非常感謝。

感謝所有, - 弗蘭克

回答

1

沒關係,我們解決了這個問題。看起來你有一個位置特定的customError指令;如果您將defaultRedirect保留爲「」,它將默認爲站點範圍內的defaultRedirect網址。

的解決方案是簡單地關閉CustomError處理這個特定的路徑,像這樣:

<system.web> 
    <customErrors defaultRedirect="/404/default.aspx" mode="RemoteOnly"> 
     <error statusCode="404" redirect="/404/default.aspx" /> 
    </customErrors> 
</system.web> 
<location path="health.aspx"> 
    <system.web> 
     <customErrors mode="Off"/> 
    </system.web> 
</location> 

還是要謝謝你,何塞。

+0

你是怎麼做到的(禁用特定路徑的自定義錯誤)? – taur 2014-05-16 19:47:50