会员注册 | 登录 | 微信快捷登录 QQ登录 微博登录 | 帮助中心 人人文库renrendoc.com美如初恋!
站内搜索 百度文库

热门搜索: 直缝焊接机 矿井提升机 循环球式转向器图纸 机器人手爪发展史 管道机器人dwg 动平衡试验台设计

   首页 人人文库网 > 资源分类 > DOC文档下载

外文翻译--在SQL Server数据库里存储Session.doc

  • 资源星级:
  • 资源大小:460.00KB   全文页数:18页
  • 资源格式: DOC        下载权限:注册会员/VIP会员
您还没有登陆,请先登录。登陆后即可下载此文档。
  合作网站登录: 微信快捷登录 支付宝快捷登录   QQ登录   微博登录
友情提示
2:本站资源不支持迅雷下载,请使用浏览器直接下载(不支持QQ浏览器)
3:本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

外文翻译--在SQL Server数据库里存储Session.doc

1在SQLServer数据库里存储SessionHTTP是个状态很不确定的协议,为了允许用户通过请求保存状态信息,ASP.NET提供了Session存储机制。这些Session变量按每个用户被存储起来。在传统的ASP里,你只能在Web服务器的内存里暂时存储Session变量,但是这个方法已经被证明了在扩展性和可依赖性上的不足。在ASP.NET里,你可以为你的每个请求定制Session状态存储。本文将探讨存储Session变量可伸缩性和可靠性都很好的方式之一的SQLServer。在传统的ASP里,默认的Session状态保存在服务器的内存中。但是,这种做法带来两方面的问题(1)它让服务器超负荷,影响了网站服务器的伸缩性能。(2)它不能有效地应用于Web服务器群。让我在一些细节上讨论这些问题,使你能为你选择了Session存储感到庆幸。Session变量依据每个用户为基础生成。默认情况下,它们都保留在Web服务器的内存中。想象一个有着成千上万用户的网站。由于巨大的用户数量,Web服务器存储的活跃Session的数目也将非常的多。这意味着你存放着非常多的session数据在Web服务器的内存中。如果不断的对服务器增加负载,它可能达到饱和,以至造成对应用程序整体扩展性能上的不良影响。为了解决这个影响到扩展性能的问题,实现Web集群。所谓的Web集群是一组网络服务器并行运行,服务器集群里的每个Web服务器都有您的网站的一个镜像。您的网站的流通负载平均分配给每个可用的服务器,从而达到负载平衡。在Web服务器的内存里存储Session变量会阻碍Web集群的建立,下面将举例来说明假定有三个Web服务器S1,S2,和S3。并行地连接在一起接受用户请求。假定这个时候有一个请求R1来到服务器集群并且负载平衡逻辑判定S2,S3都因为某些其他的任务而没有空闲,但是S1可以处理这个请求。很显然,这个请求会被送到S1进行处理。现在,想象在这个处理过程当中你在S1的内存中存储了某个Session变量。到目前为止,一切还很好。过了一些时间,同样的用户有了另一个请求R2,这个请求需要上一个请求所存储的Session变量。但是这个时候S1已经被一些任务使用着,而S2,S3却处于空闲的状态。你可以猜到根据每一条的负载平衡规则,R2将会被送到S2进行处理。但是,如果那发生了,S2怎么能够得到Session变量毕竟,它们存储在和S2完全没有任何关联的Web服务器S1的内存中。这意味着R2仍然得等待S1的空闲。这种事情很显然是Web服务器群资源的浪费。ASP.NET2.0及其Session信息存储2ASP.NET2.0允许你存储session变量在三个不同地方(1)在网站服务器的内存中存储进程中的。(2)在一台专门用来存放Session变量的服务器中存储。Session状态信息存储服务器(3)在一个SQLServer的数据库里面存储。默认情况是第一种存储模式。模式二和模式三通常被称为进程外的模式,因为Session变量的存储和Web站点没有关系。在这篇文章,你将被限制在只探索第三种模式。在SQLServer数据库里存储Session变量具有以下优点(1)可扩展性如果您正在找一个高度可扩展性的方法来储存Session变量,SQLServer正是如此,它比其它的可扩展性更好。Web服务器群可以很容易地获取Session变量,因为它们都储存在一个独立的数据库。(2)可靠性因为数据是很真实的存放在数据库里面,它比其他方法都要好。不用去担心服务器重启的问题。(3)安全SQLServer比在内存或Session状态信息存储服务器中更安全。你可以更简单的通过配置SQLServer的安全选项来保护你的数据。在web.config文件里,可以通过定义一个来配置Session状态模式。备注如果是在Web服务器群里,Web服务器群的每一台服务器的IISMETABASE的应用程序路径应该是完全相同的。Session结束事件不会因为任何进程之外的模式发生。配置SQLServer来储存Session状态在你真正的在SQLServer存储Session状态之前,你需要先配置它。配置工作都是通过一个名为aspnet_regsql.exe的命令行工具来完成的。在SQLServer里面,你可以在三个可能的地点存储Session状态,1临时存储在这种情况下,Session状态保存在SQLServer的tempdb数据库里面。该工具建立一个数据库名为aspstate并增加特定的存储过程来管理要保存的Session信息。这个工具还创建tempdb数据库所需的表。如果您重新启动SQLServer服务,Session信息不会丢失。32持久存储该工具建立一个数据库名为aspstate并增加特定的存储过程来管理要保存的Session信息。Session状态信息储存在aspstate数据库里。这种方法的优点是,即使您重新启动的SQLServer。Session信息也不会丢失。2定制存储Session状态信息和数据存储过程都有用户定制存储。同时数据库的名称必须在配置文件中声明。下面的表列出了这个工具与Session存储配置相关的各种命令行开关命令行开关备注S指定你想要存储Session状态信息的SQLServer服务器的IP地址或者服务器名。U指定和SQLServer连接时使用的用户名。P指定和SQLServer连接时使用的用户的密码。E指出你想要连接的SQLServer服务器需要完整的安全策略ssadd添加支持服务器模式的session状态ssremove移除支持服务器模式的session状态sstypeSession状态支持的类型,一下是可以支持的类型t代表临时存储p代表持久存储c代表定制储存d用于使用的数据库的名字如果要转换sstype,就用命令c表单和创建的存储过程作为一个开发人员,你可能从来无法直接影响session状态数据库。然而,当你运行ASPNET_REGSQL.EXE工具,你将会对表单和数据库的创建会有一个很好的理解。4配置1在SQL数据库服务器中创建表单配置2在数据库服务器中创建存储过程配置你的网站来存储Session状态一旦你配置你的SQL服务器来支持session状态存储,下一步就是配置你的网站了。web.config的标记允许你指定session存储的信息。下列的表中列出了一些这个标记得重要属性属性描述modeMode属性可以使用一下的几个值Off指示这个session状态关闭.InProc指示这个session将被存储在web服务器的内存中。这是默认的设置StateServer指示这个session将被储存在一个状态服务器中SQLServer指示这个session将被储存在一个SQL服务器的数据库中.Custom指示你将会有一个定制的session存储机制,这个机制使用了ASP.NET的提供的模式sqlConnectionString如果模式被设置为SQL服务器,你必须指定这个属性。这个属性指定了那个SQL服务器数据库的连接字符串。这个数据库的是用来进行状态的存储的。注意,如果你使用了临时的

注意事项

本文(外文翻译--在SQL Server数据库里存储Session.doc)为本站会员(英文资料库)主动上传,人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知人人文库网([email protected]),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。

copyright@ 2015-2017 人人文库网网站版权所有
苏ICP备12009002号-5