我有一个 ASP.NET MVC 工作流配置为由负载均衡器管理的两个网站。网站使用 Sql Server 作为会话状态提供程序并关闭身份验证(不需要)。
现在,我似乎偶尔会丢失会话状态,我相信这是因为请求正在由备用服务器处理,所以基本上用户正在从服务器跳转到服务器,这取决于负载均衡器认为合适的方式。我并不总是在工作流的同一阶段“丢失会话状态”,所以我相信这与网络场配置 + sql server 会话状态有关。
两个应用程序使用相同的机器密钥来加密和解密存储在 sql server 中的会话状态。
两台服务器上的配置如下:
<authentication mode="None" />
<sessionState mode="SQLServer" sqlConnectionString="{connection-string}" />
<machineKey decryptionKey="777CB456774AF02F7F1AC8570FAF31545B156354D9E2DAAD"
validationKey="89B5B536D5D17B8FE6A53CBB3CA8B8695289BA3DF0B1370BC47D362D375CF91525DDB5307D8A288230DCD4B3931D23AED4E223955C45CFF2AF66BCC422EC7ECD" />
我已经确认这在两台服务器上都是相同的,有什么我遗漏的吗?
当我使用单个服务器时,这不会发生在我的开发环境中。
我担心我正遭受周五忧郁症的折磨,毫无疑问下周会找出答案,可悲的是我不想等待!
有任何想法吗?