无法使用带有SQL的通用会话状态提供程序跨实例访问会话状态

时间:2012-01-17 19:35:36

标签: azure provider universal session-state

我有一个包含Web应用程序的Azure项目。它在计算模拟器中运行两个实例。我已经为会话状态添加了通用提供程序,并且我当前将它指向SQL Express数据库。

创建会话时,我可以看到它正在数据库中创建。

当我在会话状态中添加内容时,它似乎存储在数据库中。我说看起来是因为我实际上没有对数据进行反序列化...我只是看到正在进行写入,并且在同一个实例上,数据反序列化很好。

但问题是,如果我碰巧连接到第二个实例,则会话数据不可用。如果在第二个实例上,我将数据存储到会话中,然后将其作为新会话写入数据库。事实是,会话ID在会话cookie中保持不变,但数据库表为每个实例创建新记录:

表中的SessionID:

0gong5ihsrjakfzry53e4rtm / LM / W3SVC / 1273337584 / ROOT 0gong5ihsrjakfzry53e4rtm / LM / W3SVC / 1273337585 / ROOT

为了测试,我尝试在web.config中更改applicationName并设置cookieless = false。

知道出了什么问题吗?

1 个答案:

答案 0 :(得分:0)

您在部署应用程序时是否发现了相同的行为?我相信这是在模拟器中观察到的一个问题,但在Azure本身,它按预期工作。

请参阅this thread on the MSDN Forums了解解决方法。

相关问题