asp.net – 在负载均衡器上启用粘性会话

任何关于这个的建议都会非常感激,我整个上午一直在研究,我仍然在摸不着头脑.几周前我开始在一家新公司工作,我是唯一的.NET开发人员,因为开发最初是由一家外包公司完成的,我被要求进行研究.
我对现有系统的了解非常有限,但从我能收集的情况来看,情况如下.

我们想在asp.net网站上启用粘性会话.从我收集的研究中,我需要做以下步骤.我们正在使用ASP.NET状态服务

该设置是一个负载平衡服务器,为两个Web服务器提供服务.

>确保两个Web服务器具有相同的计算机密钥.
>确保在部署之前已对网站进行了预编译.用于ASP.NET State Service对对象的序列化.
>确保两个Web服务器上iis元数据库上的应用程序路径相同.

我缺乏的知识是会话存储在哪里.会话是否存储在负载均衡器上,是否可以存储在负载均衡器上?从我所看到的,它们由ASP.NET状态服务存储,如果服务在负载均衡器上运行,则会话存储在负载均衡器中.

根据我的理解,ASP.NET状态服务在每个Web服务器上运行,它们只是相互通信,以便会话存储在两个服务器上.我假设他们这样做的方式是基于所使用的算法类型.任何信息将不胜感激.

最佳答案
zeencat,在状态服务器模式部分查看http://msdn.microsoft.com/en-us/library/ms178586.aspx

StateServer mode stores session state in a process, referred to as the ASP.NET state service, that is separate from the ASP.NET worker process or IIS application pool.
Using this mode ensures that session state is preserved if the Web application is restarted and also makes session state available to multiple Web servers in a Web farm.
To use StateServer mode, you must first be sure the ASP.NET state service is running on the server used for the session store. The ASP.NET state service is installed as a service when ASP.NET and the .NET Framework are installed.

根据我的理解,ASP.Net状态服务在一台服务器上运行,作为一种称为ASP.NET状态服务的服务,两台服务器将具有相同的web.config文件:

<configuration>
  <system.web>
    <sessionState mode="StateServer"
      stateConnectionString="tcpip=SampleStateServer:42424"
      cookieless="false"
      timeout="20"/>
  </system.web>
</configuration>

这样,会话存储在托管服务的服务器上.

希望能帮助到你,
[]

转载注明原文:asp.net – 在负载均衡器上启用粘性会话 - 代码日志