2011-09-20 21 views
0

在Global.asax中我有Application_Error處理程序中的代碼,它將錯誤消息存儲在HttpRuntime.Cache中,將錯誤記錄到應用程序日誌文件,然後將用戶轉移到Error.aspx頁面以顯示消息在網站模板/主題內(通過從HttpRuntime.Cache中檢索)。.Net Application_Error

我想知道的是,如果有一個好方法來管理HttpRuntime.Cache內容。

目前,我使用在全局可用的常量文件中定義的鍵設置HttpRuntime.Cache值,然後在後面的Error.aspx代碼中明確地刪除它。

有沒有一種更明智的方法來確保在錯誤處理完成後能夠正確清理HttpRuntime.Cache?

爲了從上下文抽象:

治法設置在中央存儲位置 控制轉到方法b僅在成功地讀出值使用從中央存儲 的值的某些值,應方法b清除值從存儲

限制:無法將控制返回給MethodA。一旦MethodB完成,程序結束。

回答

0

恕我直言,你在正確的軌道上。

我在過去做過的事情是擁有一個DTO(數據傳輸對象,一個輕量級數據對象),用於保存異常信息並存儲在Session中。捕獲錯誤並強制重定向到錯誤頁面的代碼還會在DTO中設置一個標誌來說明錯誤是否可恢復,如果存在,它還會在DTO中存儲一個URL - 這意味着錯誤頁面可以呈現出一個鏈接讓用戶點擊回到他們被打斷的地方(你控制着鏈接,並且無論結束了什麼,所以你可以把它們發回給你的應用程序中的任何你喜歡的地方,或者重新創建一個頁面儘可能多地爲他們繼續)。

請記住,緩存是全局的,因此您可以用另一個用戶的覆蓋一個用戶的例外信息。

相關問題