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。

或者将下面的内容保存为reg文件,导入注册表

Windows Registry Editor Version 5.00


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters]

"AllowRemoteConnection"=dword:00000001

"Port"=dword:0000a5b8


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