2010-04-20 72 views
0

我對ASP.NET編程和一般的web編程都比較陌生。我們有一個我們最近從.NET 1.1移植到3.5的站點。目前,我們有兩種錯誤處理方法:在頁面上加載數據時捕獲錯誤,並在頁面上的標籤中顯示格式錯誤或重定向到一般錯誤頁面。這兩個都有點煩人,因爲現在我正試圖重新設計我們的錯誤顯示方式。ASP.NET 3.5網站中錯誤處理的設計模式

我們很快轉向Master頁面,我在想是否有一種方法可以「內置」錯誤處理控件。我的意思是使用我設計的ASP.NET用戶控件,它簡單地傳遞從服務器返回的錯誤字符串。如果發生錯誤,頁面將不顯示內容,而是顯示錯誤控制。這爲我們提供了在錯誤期間保留當前橫幅/導航的能力(我們沒有使用通用錯誤頁面),以及使我無需將控件添加到每個aspx頁面(我必須使用標籤每頁系統)。像這樣的事情是有道理的嗎?最終,我只想將錯誤控制添加到單個頁面,並且所有其他頁面都可以直接訪問它。這是母版頁幫助的東西嗎?

謝謝!

回答

2

用戶在global.asax中的application_error事件來捕獲所有未處理的錯誤 - 您可以在這裏登錄它們。您不應該像這樣向客戶端輸出錯誤消息。

使用web.config中的CustomErrors部分爲您的用戶定義自定義錯誤頁面。

你也可以看看使用ELMAH這樣的東西來輕鬆登錄。

+0

感謝您鏈接到ELMAH,我們可能會使用類似這樣的內容。我們遇到的真正問題不是未處理的異常,更多的是我們的服務器在數據檢索期間返回錯誤。以及如何設計網站,以便每個頁面以與用戶相同的方式顯示錯誤。 – Kevin 2010-04-20 18:16:13

+1

好的,您可以考慮在您的母版頁上提供一種方法來設置錯誤標籤的文本,這可能是一種持續寫出解釋性錯誤消息的方式。 – Paddy 2010-04-21 08:44:10