在Azure上注销

时间:2012-02-28 03:18:27

标签: asp.net-mvc azure

我们使用Forms身份验证在Azure云上运行基于ASP.NET MVC3的Web角色。

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

有没有人见过这个?关于为什么会发生这种情况的任何想法?

在多台计算机上观察到多个用户使用多个浏览器。

谢谢!

3 个答案:

答案 0 :(得分:4)

这里不多,但是......

  • 您是否正在运行多个实例?如果是这样,您是否将SQL Azure或Cache设置为会话提供程序?如果没有,您将拥有两组会话状态,并且根据您点击的VM实例,您的用户会话状态可能存在也可能不存在。
  • 停用20分钟后是否发生了注销?这是AppPool回收之前的默认超时。
  • 这是否会在Compute Emulator中以及部署时发生?

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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