2010-09-02 41 views
1

嗨,如果我的網站的請求包含一些錯誤(數據庫鏈接錯誤),然後顯示asp.net主機服務器錯誤頁面,但我想避免錯誤頁面,我可以顯示自己的自定義設計的錯誤頁面。如何在asp.net中設置我自己的默認錯誤頁面?

+1

接受ans如果它適合你 – 2010-09-02 13:05:22

回答

2

添加如下圖所示你web.config文件中的適當位置customErrors元素:

<configuration> 
    ... 

    <system.web> 
     <customErrors mode="On" defaultRedirect="~/ErrorPages/Oops.aspx" /> 

     ... 
    </system.web> 
</configuration> 

mode屬性設置爲On可確保t錯誤頁面顯示給每個人。如果您只想向遠程用戶顯示錯誤頁面,則可以將該屬性設置爲RemoteOnly;然後本地用戶會看到包含異常細節的錯誤頁面,這可能會簡化開發。

如果您想了解更多關於這主題,我建議你看看在從官方ASP.NET站點下面的文章:Displaying a Custom Error Page

+0

最好發佈一個答案和一個鏈接,然後只是一個鏈接。如果他們能在這裏得到答案,爲什麼要把每個人都送到另一個網站? – Oded 2010-09-02 08:53:35

+0

@Oded你是對的;這個鏈接本身並沒有增加討論的重要性。因此,我已經更新了我的答案,以包括如何實現OP要求的細節,並且我還將鏈接留給了文章以供進一步閱讀。 – 2010-09-02 09:06:08

1

在web.config文件中粘貼此設置自己默認的錯誤頁面

customErrors Element (ASP.NET Settings Schema)

<configuration> 
    <system.web> 
     <customErrors mode="On" defaultRedirect="GetLastError.aspx" /> 
    </system.web> 
</configuration> 
+0

設置爲「Off」的'mode'屬性將顯示異常詳情。正如問題第二部分所述,OP不想顯示異常詳細信息,而是顯示自定義錯誤頁面;與您的配置這是不可能的。 – 2010-09-02 09:16:03

1

要做到這一點,你可以使用像Pranay提到的customErrors配置設置。 (但您希望模式爲On或RemoteOnly,RemoteOnly從本地主機上仍然可以看到詳細的錯誤消息,而其他客戶端將看到您的處理程序頁面)

另外,作爲旁註,您可以重寫頁面的OnError方法,在發生未處理的異常時調用該方法。要檢查觸發該方法中的錯誤的異常,可以調用Context.Server.GetLastError()方法,然後按照需要繼續。 (記錄異常,重定向到頁面等)。 更通用的解決方案是創建一個HttpModule來處理HttpApplication的Error事件,但這不是你要求的。

相關問題