2012-02-28 78 views
1

我们使用Forms Authentication在Azure云上运行基于ASP.NET MVC3的Web角色。在Azure上注销

偶尔我们已经注意到,登录的用户将自动注销,而无需任何操作(浏览器窗口打开时)。

有没有其他人看到过这个?任何想法为什么这可能发生?

已经在多台机器上观察到使用多个浏览器的多个用户。

谢谢!

回答

4

不多,在这里继续下去,但是......

  • 你运行多个实例?如果是这样,你是否将SQL Azure或Cache设置为会话提供者?如果没有,您将拥有两组会话状态,并且根据您访问的是哪个VM实例,用户的会话状态可能存在也可能不存在。
  • 注销是否在20分钟不活动之后发生?这是AppPool在回收之前的默认超时时间。
  • 这是否发生在计算模拟器以及部署?
1

由于windows azure网络负载均衡不支持关联,因此每个客户端请求都将被重定向到任何节点实例。如果您不使用SQL Azure或Azure AppFabric Cache作为会话提供程序,则每个实例将在内存中存储其asp.net会话。然后每个内存中的会话对其他实例都是不可见的。

1

最有可能是您的Session正在运行InProc,并且当用户转到新服务器时,他们不得不再次登录或者服务器由于某种原因重新启动。如果您正在使用InProc,请切换到AppFabric缓存,如果您已经使用了该缓存,请登录该框并检查事件日志以查看进程是否正在重新启动(查找未处理的异常)。