1

我按照此处如何配置 SQL Server 以管理 ASP.NET 会话以创建 ASPState db 中的方向进行操作。我在 IIS 7 中有 2 个 Web 应用程序。在 IIS Web 应用程序设置中,我转到“会话状态”并将会话状态设置为“SQL Server”并提供连接字符串。在每个 Web 应用程序 web.config 中,我添加

<sessionState
       mode="SQLServer"
       allowCustomSqlDatabase="false"
       sqlConnectionString="data source=server;user id=user;password=password"
       cookieless="false"
       timeout="7200"
/>

我创建一个会话,

Session["Data"] = "test"

在 Web App A 中,然后在同一浏览器中转到 Web App B 进行打印

Response.Write(Session["Data"]);

它什么也没显示。我可以看到表中有数据:ASPState 数据库下的 ASPStateTempApplications 和 ASPStateTempSessions。另外,我在事件日志中看不到任何错误。谁能想到我做错了什么?

谢谢!!

4

1 回答 1

2
You can not get session that belongs to App-A from App-B and vice versa.

会话与 cookie 相关联,并且 app-a 和 app-b 之间的 cookie 不同,是随机制作的。即使设置了一些相同的 cookie,然后数据库将会话与应用程序 ID 连接起来,每个应用程序的 ID 也是不同的。

所以即使你有相同的数据库,应用程序id不同,cookies不同,你也无法从a到b获取会话。

存档的唯一可能方法是制作您的自定义会话代码,并且有些人知道您在 app-A 和 app-B 上具有相同的用途,因此将它们连接在一起。

于 2012-05-30T21:58:04.133 回答