asp.net-mvc – asp.net web farm中丢失的会话状态

我已经忙了几个月了.

我目前有1个网站的2台服务器.使用循环dns我发现一开始一切正常(检查它改变的网站的IP,但我可以继续我的会话),但过了一段时间我失去了我的会话,似乎无法读取formauthentication cookie,是被丢弃. (假设)但这并不是一直发生的.只是有时.

我正在使用iis7共享配置,我设置机器密钥,我正在使用指向其中一个服务器的stateserver,我在两个服务器上验证了stateserver的工作原理.

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

有人有想法吗?

最佳答案 对于遇到同样问题的人,我会自己回答这个问题.一切都设置正确但机器密钥应位于system.web下的web.config中.通过iis 7生成密钥由于某种原因无效,我使用在线工具生成它:
http://aspnetresources.com/tools/machineKey

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

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

希望这有助于某人.

点赞