background image

 

所有已经通过 Global.asax 

文件中带有 Session”范围的标记添加到会话状态集合的变量

项。例如:  ' Global.asax definition.

 

  对象不能从 ASP.NET 应用程序内的其他任

 

何地方添加到 StaticObjects 集合中。如果用户试图直接通过代码添加对象,则集合将引

 

发一个 NotSupportedException

 

。  注意 ASP.NET 页编译器在页编译时自动将成员引

 

用插入到存储在 StaticObjects 集合中的所有对象中。  页开发人员可以在页请求时直

 

接 访 问 Session  

 

对 象 , 而 无 需 通 过 StaticObjects   集 合 , 如 下 面 的 示 例 所 示 : 

Number of entries:  会话状态的配置和启动  ASP.NET 中有三种会话状态模式。您

 

可以在进程内、状态服务器和 SQL Server 之间选择。不管选择何种模式,基本的配置过
程都是一样的。  ASP.NET 通过两个阶段配置会话状态。首先,将会话状态模块插入 
HTTP 

 

请求。默认情况下,这是在整个计算机 Machine.config 文件中配置层次结构的根

 

完成的。  下面的示例显示了 Machine.config 文件中的一个示例项。为使配置文件正常

 

工作,您必须为适当的 System.Web.SessionState.SessionStateModule 程序集版本

 

提供完全限定程序集名称。此版本通常是与应用程序使用的 .NET Framework 版本关联
的版本。有关如何获取完全限定程序集名称的信息,请参见程序集名称。   ...  ... 

 

然后,根据要使用的会话状态,在 配置元素中设置适当的会话状态服务属性。  配置进

 

程内模式  进程内模式是默认的会话状态模式。若要使用进程内模式,请将 元素的 
mode  

 

属 性 设 置 为 Inproc 。     下 面 显 示 了 进 程 内 模 式 的 一 个 配 置 设 置 示 例 。 

cookieless="false"  timeout="20"/>  配置状态服务器模式  若要使用状

 

态服务器,必须首先确保 ASP.NET 状态服务运行在用于会话存储的远程服务器上。此服

 

务 与

ASP.NET  

 

Visual   Studio   .NET   一 起 安 装 在 以 下 位 置 : 

systemroot\Microsoft.NET\Framework\versionNumber\aspnet_state.exe  然后,

 

在应用程序的 Web.config 

 

 

文件中,将 元素的 mode 

 

属性设置为 StateServer。最后,

 

将 connectionString 

 

属性设置为 tcpip=serverName:portNumber。  下面是状态

。 

stateConnectionString="tcpip=dataserver:42424"     cookieless="false"  
timeout="20"/>

 

  配置 SQL Server 

 

模式  若要使用 SQL Server,首先在将存

 

储 会 话 状 态 的

SQL   Server  

 

计 算 机 上 , 运 行

InstallSqlState.sql   或 

InstallPersistSqlState.sql

 

。两个脚本均创建一个名为 ASPState 的数据库,它包含若干

 

存 储 过 程 。 两 个 脚 本 间 的 差 异 在 于 放 置 ASPStateTempApplications   和 
ASPStateTempSessions 表的位置。InstallSqlState.sql 

 

脚本将这些表添加到 TempDB 

数据库,该数据库在计算机重新启动时将丢失数据。相反,InstallPersistSqlState.sql 脚

 

本将这些表添加到 ASPState 数据库,该数据库允许在计算机重新启动时保留会话数据。 
默 认 情 况 下 , 两 个 脚 本 文 件 均 安 装 在 下 面 的 位 置 : 
systemroot\Microsoft.NET\Framework\versionNumber     然 后 , 在 应 用 程 序 的 
Web.config  

 

 

文 件 中 , 将 元 素 的 mode  

 

属 性 设 置 为 SQLServer 。 最 后 , 将 

sqlConnectionString  

 

属 性 设 置 为

Integrated   Security=SSPI;data 

source=serverName;

 

。  下面显示了 SQL Server 模式的一个配置设置示例。 

sqlConnectionString="   Integrated   Security=SSPI;data   source=dataserver;"  
cookieless="false"  timeout="20"/>

 

  在 SQL Server 模式中,也可以将会

 

话状态配置为在故障转移群集中工作。故障转移群集是两个或更多相同的冗余 Web 服务

 

器,它们将会话数据存储在一台单独的计算机上的 SQL Server 

 

数据库中。如果一个 Web 

服务器出现故障,群集中的另一个服务器会接管它的工作,为请求提供服务,会话数据不

 

会丢失。若要配置故障转移群集,请将 Web 

 

服务器的 Web.config 

 

文件中的 元素设置为

 

相同的值。然后将 Web 

 

服务器的 SQL 连接字符串设置为指向计算机上存储会话数据的