2012-03-09 30 views
0

我的朋友在這裏問了一個question處理IRequiresSessionState與IReadOnlySessionState的ASp.net狀態服務器?

而那個回答他的人寫了一些有趣的東西! (沒有任何證據,來源)。

當您使用進程外會話 狀態存儲時,它會產生更大的差異。在那種情況下,如果沒有接口,系統將仍然將會話數據存儲在遠程數據庫中,即使它的 沒有更改(系統不會跟蹤會話 數據是否在請求期間被修改) 。當您使用IReadOnlySessionState接口時,回寫階段會被跳過。

這是否說IRequiresSessionState會回寫會話(即使哈登已更改)?

任何解釋將很樂意例外。

回答

2

無法找到正式文件這種效果,但發射了dotPeek(或其他一些反編譯),並具有圍繞System.Web看看相繼表明:

  • HttpContext.Handlerset,如果處理程序實現IRequiresSessionStateHttpContext._requiresSessionStateFromHandler設置爲true;
  • 這後一個私人會員通知get ter的HttpContext.RequiresSessionState;
  • SessionStateModule(這我鑼猜測總是在模塊管道),在其EndRequest處理程序,檢查HttpContext.RequiresSessionState,如果它是true,會談會話狀態提供商保存狀態。
+0

+1好的研究,謝謝! – tsemer 2012-11-06 09:29:35