簡體   English   中英

如何從SQL Server支持的ASP.NET會話狀態獲取密鑰列表?

[英]How to get list of keys from ASP.NET session state backed by SQL server?

我正在尋找一種可視化存儲在SQL Server中的ASP.NET會話狀態數據的好方法,最好不要創建一次性的.aspx頁。 是否有直接從SQL Server獲取鍵列表(以及序列化數據,如果可能)的好方法?

理想情況下,我想直接對數據庫運行一些T-SQL命令,以獲取已為給定會話ID存儲的會話密鑰的列表。 也很高興看到每個鍵的序列化數據。

您能否詳細說明一下,是否沒有對HttpContext的引用(可以從后端代碼以及FYI中使用它),從而阻止您使用內置的序列化和密鑰字典?

編輯,以響應您的更新。 我相信ASPState數據庫會根據需要創建和銷毀臨時表,它沒有可以查詢的永久表,請查看存儲過程,並且應該在“ TempGetItem”中找到一個,您可以直接使用此sproc ,或檢查其來源以獲得更多見解。

當您以sql server session模式運行asp.net應用程序時,它將創建兩個表dbo.ASPStateTempApplications和dbo.ASPStateTempSessions。 您可以從第一個表中找到您的應用程序,並將其用於從第二個表中查詢打開的會話。 ASPStateTempSessions表存儲兩列SessionDataShort和SessionDataLong。 所有會話信息都是二進制的。 如果要再次反序列化對象類型並查看其內容,則需要知道會話中存儲的對象類型。

我最近已經嘗試過了,效果很好。 實際上,對於復雜的應用程序,值得擁有一些工具來查看和解析會話數據,以確保我們不會存儲不需要的對象並將其長時間保留在數據庫中-這樣做可能會降低運行速度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM