【问题标题】:Cannot access session state across instances with Universal Session State Provider with SQL无法使用带有 SQL 的 Universal Session State Provider 跨实例访问会话状态
【发布时间】:2012-02-12 14:37:33
【问题描述】:

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

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

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

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

表中的SessionID:

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

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

知道出了什么问题吗?

【问题讨论】:

    标签: azure provider universal session-state


    【解决方案1】:

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

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

    【讨论】:

    • 不幸的是,这不适用于新提供者,因为它使用实体而不是存储过程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    • 2012-03-12
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多