在ASP.NET SQL Server模式下延迟加载会话变量

时间:2010-08-30 06:57:28

标签: asp.net session-state

想知道SQL模式下的ASP.NET会话提供程序是否会乐观地获取整个会话状态对象(即我们请求时的所有键及其值)或者以惰性方式获取它们(即转到数据库并仅获取所请求的密钥和相应的值)?

1 个答案:

答案 0 :(得分:3)

我安装了SQL的SQL会话状态,如下所示:

aspnet_regsql.exe -sstype c -ssadd -d mydatabase -U MyUserName -P MyPassword -S xx.xx.xx.xxx

以下是安装的“选择”存储过程之一。我试着弄清楚它。

在我看来,用户的整个会话状态被序列化并存储在一个数据库记录中。这意味着将加载用户的整个会话状态以访问任何记录。

我猜测它可能是在ASP.net页面或应用程序生命周期的早期阶段默认加载的(可能只有当编译器在任何页面代码中识别出对Session()的访问时)。

enter image description here

以下是存储会话数据的表格,供参考:

enter image description here