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

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

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

收藏

编号:201311172035367939    大小:460.00KB    格式:DOC    上传时间:2013-11-17
  【编辑】
5
关 键 词:
教育专区 外文翻译 精品文档 外文翻译
资源描述:
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信息不会丢失。3(2)持久存储:该工具建立一个数据库名为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服务器数据库的连接字符串。这个数据库的是用来进行状态的存储的。注意,如果你使用了临时的
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

当前资源信息

4.0
 
(2人评价)
浏览:16次
英文资料库上传于2013-11-17

官方联系方式

客服手机:17625900360   
2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   

相关资源

相关资源

相关搜索

教育专区   外文翻译   精品文档   外文翻译  
关于我们 - 网站声明 - 网站地图 - 友情链接 - 网站客服客服 - 联系我们
copyright@ 2015-2017 人人文库网网站版权所有
苏ICP备12009002号-5