使用 SQL 会话存储

如果你发现有多个服务器需要共享会话状态,则将其存储在 ASP.NET 进程内存中将不起作用。例如,你可以部署到具有负载均衡器的 Web 场环境中,该负载均衡器以循环方式分发请求。在此环境中,单个用户的请求可由多个服务器提供。

在 web.config 文件中,你可以配置 SQL Server 会话存储。

<configuration>
  <system.web>
    <sessionState 
      mode="SQLServer"
      sqlConnectionString="Data Source=localhost;Integrated Security=SSPI"
      cookieless="true"
      timeout="30" />
  </system.web>
</configuration>

要创建 sql 架构,请使用 aspnet_regsql 工具。 [SampleSqlServerName]是 SQL Server 的主机名。 -ssadd 告诉工具创建会话状态数据库。 -sstype p 告诉工具使用默认名称 ASPState 创建一个新数据库。

aspnet_regsql.exe -S [SampleSqlServerName] -U [Username] -P [Password] -ssadd -sstype p