4

我已经忙了几个月了。

我目前有 2 个服务器用于 1 个网站。使用轮询 dns,我发现一开始一切正常(检查它更改的网站的 ip,但我可以继续我的会话),但过了一会儿我失去了我的会话,似乎无法读取表单身份验证 cookie 并且是被丢弃。(假设)但这并不总是发生。只有某些时候。

我正在使用 iis7 共享配置,我设置了机器密钥,并且我正在使用指向其中一台服务器的 stateserver,并且我验证了 stateserver 在两台服务器上都可以正常工作。

我读了一些关于 IIS 应用程序路径的东西,但我真的不知道这是什么意思,是 webapp 的路径,还是安装 IIS 的路径?在这两种情况下,它们是相同的。

有人有什么想法吗?

4

2 回答 2

3

对于面临同样问题的任何人,我将自己回答这个问题。一切设置正确,但机器密钥应位于 system.web 下的 web.config 中。由于某种原因,通过 iis 7 生成密钥不起作用,我使用在线工具生成它:http: //aspnetresources.com/tools/machineKey

因此,要在 iis7 上进行负载平衡和设置多个服务器,您应该:

  • 使用 stateserver out-proc(stateserver 或 sql server)并让所有服务器都指向该 stateserver(例如:stateConnectionString="tcpip=server1:42424")
  • 使用 iis 共享配置,以便您的所有服务器都指向 applicationhost.config 所在的共享。
  • 生成机器密钥(不是通过 iis,只需使用在线工具!)
  • 设置 NLB(或循环 DNS)并在您登录时通过刷新客户端上的 dns 来测试它,看看您的会话是否不会丢失。

希望这可以帮助某人。

于 2012-09-09T09:33:20.363 回答
0

并且机器密钥特定于 .NET 版本。检查当前版本: 在 IIS 控制台的服务器级别,单击“操作”窗格中的“更改 .NET Framework 版本”。

于 2012-11-02T20:18:05.460 回答