我找到了很多关于这个主题的问答,但我仍然没有弄清楚我们服务器的正确配置。背景是这样的:我们在负载均衡器后面有两个 Web 服务器,并且必须确保用户不会丢失他们的会话。
- Web 服务器是 IIS7/ASP.NET 4。
- 我们目前无法设置单独的会话状态服务器,因此必须在 LB 上使用粘性会话。
据我了解,必须确保以下几点:
- 在两个 Web 服务器上设置相同的机器密钥。
- 使用预编译站点,以便程序集在两台机器上获得相同的命名。
- 我们要么必须基于 ip-number 或 cookie 的粘性会话(后者是首选)
有必要有预编译的网站吗?(我知道它更快,但我们失去了一些灵活性)
由于我们有粘性会话,因此具有相同的机器密钥是否仅影响用户会话超时并且他/她因此最终在另一台服务器上的情况是否正确(这意味着包含视图状态的回发可能无效,除非他们有相同的机器钥匙?)