sessionState失效配置详解

上传人:洪易 文档编号:39982346 上传时间:2018-05-21 格式:DOC 页数:4 大小:21KB
返回 下载 相关 举报
sessionState失效配置详解_第1页
第1页 / 共4页
sessionState失效配置详解_第2页
第2页 / 共4页
sessionState失效配置详解_第3页
第3页 / 共4页
sessionState失效配置详解_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《sessionState失效配置详解》由会员分享,可在线阅读,更多相关《sessionState失效配置详解(4页珍藏版)》请在金锄头文库上搜索。

1、sessionState 失效配置详解失效配置详解web Form 网页是基于 HTTP 的,它们没有状态, 这意味着它们不知道所有的请求是否来自同一台客户端计算机,网页是受到了破坏,以及是否得到了刷新,这样就可能造成信息的丢失。 于是, 状态管理就成了开发网络应用程序的一个实实在在的问题。在 ASP 中能够通过 Cookie 、查询字符串、 应用程序、会话(Session) 等轻易解决这些问题。现在在 ASP.NET 环境中,我们依然可以使用这些功能,并且功能更加强大。 状态管理分为服务端和客户端两种情况, 这里只是介绍 服务端状态管理: 与 Application 对象不同的是, ASP.

2、NET 的 Session 对象可以在 IIS 服务器或者工作进程重新启动时恢复启动前的状态而不丢失其中的数据。这是因为存储在 Session 中的所以信息都缺省的存储在一个作为 Windows 服务运行的状态服务器进程中。状态可以被序列化并以二进制形式保存在内存中。程序员可以悬着使用 Microsoft Sql server数据库来存储数据。 状态服务器服务和状态信息可以和 web 应用程序一起存在于同一台服务器上,也可以保存到外部的状态服务器上。 为了指定如何存储信息,程序员可以在 web.config 文件中编写适当的配置。ASP.NET 会话状态模块在 Web.config 文件中标记

3、下的标记的 mode 属性来决定该属性的四种可能的值: Off、 Inproc StateServer 和 SQLserver。1 Inproc 是缺省的设置是缺省的设置它允许“无 Cookie”的会话,以及在服务器之外存储会话数据。ASP.NET会话状态模块在 Web.config 文件中像下面这样配置:在这个例子中,mode 属性设为 InProc(默认值) ,表明会话状态要由ASP.NET 存储到内存中,而且不用 Cookie 来传递会话 ID。相反,会话 ID要直接插入一个网页 URL 的查询字符串中。例如,采用 InProc 模式并建立一个会话之后,调用一个假想的 ASP.NET 网

4、页时,需要采用下面这样的 URL:http:/ ID。ASP.NET 引擎从查询字符中提取会话 ID,并将用户请求与特定会话联系起来。采取这种方式,不管Cookie 还是隐藏表单字段都用不着了。所以,即使网页中没有使用表单,也能加入会话。 但是这种方法,应用程序的状态将依赖于 ASP.NET 进程,当 IIS 进程崩溃或者正常重启时,保存在进程中的状态将丢失。2 mode 属性设为属性设为 Off和从前的 ASP 一样,ASP.NET 的会话状态管理是要产生开销的。所以,假如某个网页不需要访问 Session 对象,开发者应将那个页的 Page 预编译指令的 EnableSessionStat

5、e 属性设为 False。要为整个网站禁用会话状态,可在 Web.config 文件中将 sessionState 元素的 mode 属性设为 Off。为了克服 inproc 模式的缺点, ASP.NET 提供了两种进程外保存会话状态的方法。3 StateServer 会话管理会话管理将 mode 属性设为 StateServer,也就是将会话数据存储到单独的内存缓冲区中,再由单独一台机器上运行的 Windows 服务来控制这个缓冲区。状态服务全称是“ASP.NET State Service ”(aspnet_state.exe) ,它由Web.config 文件中的 stateConnec

6、tionString 属性来配置。该属性指定了服务所在的服务器,以及要监视的端口:在这个例子中,状态服务在一台名为 myserver 的机器的42424端口(默认端口)运行。要在服务器上改变端口,可编辑HKLM/SYSTEM/CurrentControlSet/Services/aspnet_state 注册表项中的Port 值。显然,使用状态服务的优点在于进程隔离,并可在 Web farm 中共享。 使用这种模式,会话状态的存储将不依赖于 iis 进程的失败或者重启,然而,一旦状态服务中止,所有会话数据都会丢失。换言之,状态服务不像 SQL Server 那样能持久存储数据;它只是将数据存储

7、在内存中。4 用用 SQL Server 进行会话管理进行会话管理 ASP.NET 还允许将会话数据存储到一个数据库服务器中,方法是将mode 属性变成 SqlServer。 在这种情况下,ASP.NET 尝试将会话数据存储到由 sqlConnectionString 属性(其中包含数据源以及登录服务器所需的安全凭证)指定的 SQL Server 中。为了用恰当的数据库对象来配置 SQL erver,管理员还需要创建 ASPState 数据库,方法是运行WinDir/Microsoft.Net/Framework/Version 文件夹中的 InstallState.sql 脚本(WinDir 是服务器的 Windows 文件夹,而 Version 是你使用的.NET 框架版本的安装文件夹) 。要配置 SQL 服务器,可以在命令行中运行 SQL Server 提供的命令行工具 osql.exeosql -S server name -U user -P password

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号