Session有什么重大 BUG,用什么方法加以解決?
- IIS中由于有進(jìn)程回收機(jī)制,系統(tǒng)繁忙的話會(huì)導(dǎo)致
Session
會(huì)丟失信不,IIS 重啟也會(huì)造成Session
丟失。 - 這并不是Bug亡呵,而是
In-Proc
方式存儲(chǔ)Session
的缺陷抽活,缺陷是和 Bug 不一樣的,In-Proc 方式存儲(chǔ)Session
會(huì)由服務(wù)器來決定什么時(shí)候釋放Session
锰什。 - 可以用 StateServer 或 SQL Server 數(shù)據(jù)庫的方式存儲(chǔ)
Session
下硕,不過這種方式效率比較低,而且無法捕獲Session
的 END 事件汁胆。
ASP.NET中的錯(cuò)誤機(jī)制
- 頁面中未捕獲的異常會(huì)觸發(fā)
Page_Error
- 應(yīng)用程序中的未捕獲異常會(huì)觸發(fā)
Application_Error
- 可以通過
HttpContext.Current.Server.GetLastError()
,HttpContext.Current.Error
梭姓,拿到未捕捉異常,記錄到Log4Net日志中嫩码,也可以定制錯(cuò)誤頁來將顯示一個(gè)友好的報(bào)錯(cuò)頁面誉尖。