2016-11-16 86 views
0

我有3子文件夾中的Web應用程序,我想在解決方案中使用:在同一個解決方案中使用多個全局錯誤文件(Web應用程序)

  1. HR
  2. 業務

每個應用程序都使用解決方案的常見部分,如母版頁,CSS等。 每個應用程序在其各自的文件夾中都有自己的錯誤頁面。

但頂級文件夾中只有1個Global.asax。 我想爲每個應用程序在全局級別處理錯誤,以便當我們瀏覽頁面時,未知錯誤總是出現在每個解決方案的正確錯誤頁面上。

例如, 1. /HR/Page1.aspx中的錯誤轉到/HR/ErrorPageForHR.aspx 2. /Business/Page1.aspx中的錯誤轉到/Business/ErrorPageForBusiness.aspx 3. /Money/Page1.aspx中的錯誤轉到to /Money/ErrorPageForMoney.aspx

我該如何做到這一點? 我可以在每個文件夾或其他方式下製作多個Global.asax嗎?

回答

0

一個可行的方法是將您的錯誤處理程序的邏輯放入帶有Class的Class Library以相應地處理錯誤。該項目對於3個Web應用程序共享的常見行爲也很有用。然後將該庫作爲參考添加到每個Web應用程序,並在每個Global.asax文件的後端中包含Class Library項目主名稱空間並調用您的ErrorHandler類邏輯。這就是我會做的...

+0

這聽起來像一個好辦法,我可以在其他項目中使用爲好。類庫可以記錄錯誤並將我重定向到正確的錯誤頁面。 – ShanChat972

0

你不能有多個Global.asax,除非你轉換文件夾區域這是探討過度殺傷力。

您可以通過HttpContext.Current.Request獲取請求,並將用戶重定向到基於URL的錯誤頁面。

此外,你可以把不同的web.config文件中的每個文件夾與customeErrors爲404,403

+0

這很酷,我可以找出使用HTTP請求(HttpContext.Current.Request)的錯誤子應用程序,並使用上面的類方法使它可重用:-) – ShanChat972

相關問題