我在负载平衡器后面的两台服务器上设置了相同的站点。我的网站上有以下内容。配置文件
<sessionState mode="SQLServer" cookieless="false" allowCustomSqlDatabase="true"
sqlConnectionString="Data Source=server;Initial Catalog=ASPState;Persist Security
Info=True;User ID=user;Password=password" timeout="2880" sqlCommandTimeout="10" />
它似乎正在工作,当我登录时,我可以看到ASPState表填充,但是我看到,如果我在登录后刷新几次,它会在登录和未登录之间来回,这取决于我击中哪个服务器。我错过什么了吗?
我使用默认的webmatrix认证内置到MVC 4
这可能是因为您的服务器上有不同的MachineKeys或者它们具有默认值。因此,您的身份验证cookie以两种不同的方式加密。
尝试在web.config中设置machineKey。下面是帮助生成machineKey http://aspnetresources.com/tools/machineKey
正如这篇文章所解释的,你需要在两个服务器上有相同的Application ID。
"当您创建希望使用Sql Server共享会话状态的应用程序时,它们需要在IIS中配置相同的ID。这是因为生成的会话ID是基于应用程序ID生成的。(在内部,应用程序ID类似于LM/W3SVC/1这两个服务器对于IIS中的每个应用程序具有不同的id。解决办法是在每个服务器上的"管理网站->高级设置"下更改ID。"
欢呼