2012-07-11 61 views
0

我在Global.asax中有一個全局錯誤處理程序,我試圖在名爲ErrorPage.aspx的頁面中顯示異常信息。我已閱讀微軟關於在asp.net頁面之間傳遞信息的頁面(http://msdn.microsoft.com/zh-cn/library/6c3yckfw.aspx)。我不認爲任何一個將工作:從Global.asax傳遞異常信息到ErrorPage.aspx

  • 查詢字符串:我擔心異常的長度將超過 查詢字符串的最大長度。
  • 發佈信息:Global.asax頁面沒有任何表單域。
  • 會話狀態:會話狀態不可用在Global.asax中
  • 公共價值觀:我認爲這只是與.aspx頁作品從源頁面
  • 控制:Global.asax中不能有asp.net控制。

我現在的想法是,這將是合乎邏輯的創建的errorPage對象的實例並導航到它(因爲你可以在Windows做窗體應用程序),但我不知道怎麼做,或如果它可能在asp.net中。

最終,我正在尋找一種方法來顯示由標準.aspx頁面中的全局錯誤處理程序捕獲的錯誤。任何的意見都將會有幫助。

+0

['Server.GetLastError()'](http://msdn.microsoft.com/zh-cn/library/system。 web.httpserverutility.getlasterror.aspx)可能會有幫助 – MilkyWayJoe 2012-07-11 20:57:57

+0

@MilkyWayJoe,由於我不明白的原因,Server.GetLastError()在我的錯誤頁面上調用時返回null。 – Brynne 2012-07-12 14:09:05

+0

也許這已經被'Application_Error'清除了? – MilkyWayJoe 2012-07-12 14:13:25

回答

1

我會怎麼做:

  1. 記錄異常的信息,包括在日誌文件中的堆棧跟蹤,
  2. 重定向到錯誤代碼(普通的HTTP ErrorCode的+通用「未知錯誤」一+一的errorPage也許查詢字符串參數
  3. 顯示此錯誤代碼的預定義消息。

沒有理由向最終用戶顯示實際的錯誤消息,更詳細的錯誤信息不能承受。如果要顯示完整信息以進行調試,請在web.config中關閉自定義錯誤