0

我正在寻找一种可视化存储在 SQL 服务器中的 ASP.NET 会话状态数据的好方法,最好不要创建一次性的 .aspx 页面。有没有直接从 SQL Server 获取键列表(和序列化数据,如果可能)的好方法?

理想情况下,我想直接对数据库运行一些 T-SQL 命令,以获取为给定会话 ID 存储的会话密钥列表。也很高兴看到每个键的序列化数据。

4

2 回答 2

0

您能否稍微详细说明一下,是否没有对可用的 HttpContext 的引用(您也可以从后端代码中使用它,仅供参考),这会阻止您使用内置的序列化和键字典?

编辑,以响应您的更新。我相信 ASPState 数据库根据需要创建和销毁临时表,它没有可以查询的永久表,看看存储过程,你应该找到一个沿着“TempGetItem”行的,你可以直接使用这个存储过程,或检查其来源以获得更多见解。

于 2008-09-30T19:37:59.867 回答
0

当您使用 sql server 会话模式运行 asp.net 应用程序时,它会创建两个表,dbo.ASPStateTempApplications 和 dbo.ASPStateTempSessions。您可以从第一个表中找到您的应用程序,并使用它从第二个表中查询打开的会话。ASPStateTempSessions 表存储两列 SessionDataShort 和 SessionDataLong。所有会话信息都是二进制的。如果您想再次反序列化它们并查看内容,您需要知道存储在会话中的对象类型。

我最近试过这个,效果很好。事实上,对于复杂的应用程序,值得拥有一些工具来查看和解析会话数据,以确保我们不会存储不需要的对象并将其长时间留在数据库中 - 它有可能减慢速度。

于 2017-04-04T13:07:56.860 回答