2012-07-25 63 views
2

我想跟蹤並列出登錄到我的網站的個人的所有活動會話。說我可以爲此使用或擴展ASP.NET的SessionProvider是否正確?在ASP中跟蹤和列出用戶的所有會話SessionStateProvider

我的意圖是爲此編輯或增強現有的Azure表會話提供程序。哪些方法可靠(或不可靠)被調用來跟蹤誰是活躍的,誰不活躍?

我應該一起忽略會話提供者並實現自己的邏輯嗎?

+1

這裏的人一定會厭倦聽我這樣說,但不要使用Azure Table Session Provider,它是一個示例,由於很好的理由而不被MS支持,它在生產環境中存在真正的問題。 http://stackoverflow.com/questions/3940891/asp-net-mvc-azure-error-accessing-the-data-store/3952346#3952346 – knightpfhor 2012-07-26 21:03:19

回答

0

你應該看看Azure Shared Cache(預覽目前)或Azure CacheASP.NET會話狀態。至於跟蹤當前誰在線的會話 - 您可以使用DataCache來爲每個頁面請求(或Global.Session_Start)使用一些滑動到期和DataCacheTag

要查詢哪些用戶會話處於活動狀態 - 可以使用GetObjectsByTag。對於標籤本身 - 您可以使用用戶標識。

+0

如果一個節點失敗,我不需要一個後備存儲,緩存是淹沒在數據中,或者在會話本身到期之前發生緩存特定到期? – LamonteCristo 2012-07-27 01:11:04

+1

正如Silver指出的那樣,建議將會話數據存儲在緩存中。如果您擔心單個緩存實例不足,可以使用多個實例。即使有一個實例崩潰,您的會話數據仍然安全。 – 2012-07-30 15:33:40