Asp.net mvc 即使不使用TempDataProvider,也会注销并每次刷新?

Asp.net mvc 即使不使用TempDataProvider,也会注销并每次刷新?,asp.net-mvc,amazon-web-services,Asp.net Mvc,Amazon Web Services,我使用asp.net mvc构建了一个应用程序,并部署了超过2个实例。我使用表单身份验证来验证用户。我只需快速查找给定的用户名和密码,如果找到匹配项,我会设置一个身份验证cookie,如下所示: if(_repository.Login(username, password)) FormsAuthentication.SetAuthCookie(username, false); 只要应用程序在一台机器上运行,这就可以正常工作,但是,一旦我将站点部署在两台机器上,站点的行为就会非常奇怪

我使用asp.net mvc构建了一个应用程序,并部署了超过2个实例。我使用表单身份验证来验证用户。我只需快速查找给定的用户名和密码,如果找到匹配项,我会设置一个身份验证cookie,如下所示:

if(_repository.Login(username, password))
    FormsAuthentication.SetAuthCookie(username, false);
只要应用程序在一台机器上运行,这就可以正常工作,但是,一旦我将站点部署在两台机器上,站点的行为就会非常奇怪。当用户登录时,站点会识别已登录的用户,经过一两次刷新后,站点将不再将该用户视为已登录的用户。如果用户再次刷新一段时间,应用程序会再次将该用户视为登录用户,这将永远持续下去
我知道,如果我将SessionState存储在proc中,可能会出现这样的问题。我根本没有使用SessionState

伙计们,我错过了什么


Ps:我已经编辑了要存储在状态服务器上的会话状态[虽然我没有在我的应用程序的任何地方使用会话或TempData],并且存在相同的奇怪行为。

您需要在服务器场中的所有服务器之间同步会话状态。否则,表单身份验证票证仅适用于发出该票证的计算机。我怀疑这与会话/临时数据有关