IIS中Session的配置

①.Inproc是缺省的设置
表示会话状态要由ASP.NET存储到内存中,而且不用Cookie来传递会话ID。
示例:

②.mode属性设为Off
整个网站禁用会话状态,可在Web.config文件中将sessionState元素的mode属性设为Off。
假如某个网页不需要访问Session对象,应将那个页的Page预编译指令的EnableSessionState属性设为False。

③.StateServer会话管理

示例:

端口修改:
通过在cmd中输入指令regedit来修改注册表
HKLM\SYSTEM\CurrentControlSet\Services\aspnet_state中的Port值

④.用SQL Server进行会话管理

具体配置如下:

①、运行Framewor安装目录下的InstallSqlState.sql文件,framework的安装目录为C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319

②、这时会提示错误,因为该应用没有注册。此时需要在命令行下注册该应用,运行如下命令:

aspnet_regsql.exe -ssadd -sstype c -d -S -U -P

注:为数据库名为ASPState ,为数据库实例名像 IBM-PC\SQLEXPRESS (若数据库不是2005的不要写ip地址,否则会连接失败),为sa(或与sa同等权限的), 为 sa用户名的密码会话定义成功,但是会提示在web应用中进行相应的配置,此时查看SQLServer会发现增加了数据库ASPState,但是没有表。

③、在命令行下运行如下命令:aspnet_regsql.exe -ssadd -sstype p -S -U -P

该命令对此应用进行了持久化操作。这时会看到ASPState数据库里面多了两张表,ASPStateTempSession就可以用来保存Session。应用时,需要在webconfig中添加如下配置:

配置节点为:<sessionState mode=“SQLServer” sqlConnectionString="server=;database=;uid=;pwd=;"cookieless=“false” timeout=“20” />如下:

虽然timeout设置的是20分钟但是 过期以后仍然可以获取到session的值。

猜你喜欢

转载自blog.csdn.net/manimanihome/article/details/85272401