ASP.NET 使用StateServer存储session

馋奶兔 提交于 2019-12-05 06:45:54

StateServer 模式将会话状态存储在一个称为 ASP.NET 状态服务的进程中,该进程是独立于 ASP.NET 辅助进程或 IIS 应用程序池的单独进程。使用此模式可以确保在重新启动 Web 应用程序时保留会话状态,并使会话状态可用于网络场中的多个 Web 服务器。

若要使用 StateServer 模式,必须首先确保 ASP.NET 状态服务运行在用于存储会话的服务器上。ASP.NET 状态服务在安装 ASP.NET 和 .NET Framework 时作为一个服务进行安装。ASP.NET 状态服务安装在以下位置:系统根目录\Microsoft.NET\Framework\版本号\aspnet_state.exe

若要将某个 ASP.NET 应用程序配置为使用 StateServer 模式,请在该应用程序的 Web.config 文件中执行以下操作:

  • 将 sessionState 元素的 mode 属性设置为 StateServer
  • 将 stateConnectionString 属性设置为 tcpip=服务器名称:42424
  • 如果StateServer需要共享给其他IIS,则需要修改StateServer所在的服务器注册表,允许远程访问
设置过程:1.web.config增加内容<configuration>
  <system.web>
    <sessionState mode="StateServer" stateConnectionString="tcpip=localhost:42424" cookieless="false" timeout="20"/>
  </system.web>
</configuration>
注意:若要在网络中使用 StateServer 模式,则必须在 Web 配置文件的 machineKey 元素,设为网络中的所有应用程序指定相同的加密密钥。
2. StateServer需要远程访问时,修改注册表值在Session服务器上打开注册表并找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection项,将其值设置为1。

   3.在服务里面找到“ASP.NET状态服务”重新启动服务。


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!