我正在开发一个MVC4应用程序。我们在Windows Azure IAAS模型上托管了我们的应用程序。现在我们配置了2台虚拟机,一切正常。但是我们在维护用户登录方面存在问题。
如果我在虚拟机1中登录,则当下一个请求来自虚拟机2时,它不会被转移。我们已经在负载平衡上映射了两个虚拟机。
我应该研究一下Cache解决方案。任何输入都会非常有用......
谢谢, Jaswanth
答案 0 :(得分:0)
你正在击中两个完全独立的虚拟机(是负载均衡,但是分开)。这要求在VM外部存储任何类型的会话数据(或者您需要同步会话内容并在两个VM中使其相同)。
Azure不会为您同步会话数据。这就是你,将它构建到你的应用程序架构中。你提到了缓存,这当然是一个可行的解决方案(你选择,但由你决定)。还有其他解决方案,例如基于数据库的会话存储。再次,这取决于你。
但最重要的是:如果您要将应用扩展到单个服务器(在这种情况下为VM)之外,以负载均衡的方式,您无法将会话数据存储在特定的虚拟机中。
答案 1 :(得分:-1)
使用持久会话状态存储(如Redis或SQL Server等)或将您的状态放在cookie中并在每个请求上读/写它。如果cookie包含敏感内容,请对其进行加密。