ASP.NET - 当 session 存储在 SQL Server 中时跨服务器的不同 SessionId

标签 asp.net iis-7 session-cookies aspstate

我使用 SQL Server 数据库跨 2 个生产 Web 服务器管理共享 session 状态。
最近我意识到(而且我几乎可以肯定以前不是这种情况)当从服务器跳转到服务器时, session 并没有真正共享。
两台服务器在同一个域上运行同一个网站,并使用硬件负载平衡器进行平衡。两者都在 IIS7 下运行。并且在两台服务器中,ASP.NET 状态服务都在运行。
在检查 HTTP header 并使用 SQL 分析器捕获交叉引用时,我发现我认为可能是问题所在。
我的 cookie 中的 SessionId 值是一个 24 个字符的字符串,例如:y4hfairc2xbwlupkdsqpv0nzASPState 收到的 SessionID数据库和存储在那里更长,并具有服务器特定的 8 个字符后缀。例如2476b0332b7731d2这在存储在数据库中的所有 session 中都是一致的。
因此,SessionID 看起来像:y4hfairc2xbwlupkdsqpv0nz2476b033y4hfairc2xbwlupkdsqpv0nz2b7731d2显然,因为 session 不是共享的,每个服务器都维护自己的 session 状态。
任何使用类似配置的人以前可能遇到过这种情况?
谢谢
更新
结果在这里:SessionId saved in SQL Server is different from the one generated from the asp.net runtime额外的字符是 IIS AppID。现在我必须找出如何更改它以便两台服务器匹配。到目前为止没有运气。
任何人?

最佳答案

为了完整性,回答我自己的问题。

感谢这个:https://serverfault.com/questions/288981/load-balanced-iis-7-5-web-server-asp-net-session-state-problem

我发现了如何匹配 AppID。

现在一切似乎都很好。

关于ASP.NET - 当 session 存储在 SQL Server 中时跨服务器的不同 SessionId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11987850/

相关文章:

c# - System.Web.Mvc.dll 源代码

windows - Powershell 更新 IIS 绑定(bind)

php - session Cookie 与持久性 Cookie

cookies - 如何在python请求库中的cookiejar中添加cookie

c# - 如何为 WebApiConfig 配置路由以将某些请求重定向到静态 html 页面?

c# - 在 for 循环中执行 SQL 查询

asp.net - 仅将 Sitecore 用作内容数据提供商

c# - Windows Server 2008R2 IIS Appcrash - System.StackOverflowException

C# IIS 7 基本 URL

session - Golang iris session 不是持久的