从别人那拷下来的几点Session使用的经验_实用技巧

问:当页面中是否了frameset,发现在每个frame中显示页面的SessionID在第一次请求时都不相同,为什么?
答:原因是你的frameset是放在一个htm页面上而不是ASPX页面。
在一般情况下,如果frameset是aspx页面,当你请求页面时,它首先将请求发送到Web服务器,此时已经获得了SessionID,接着浏览器会分别请求Frame中的其他页面,这样所有页面的SessionID就是一样的,就是FrameSet页面的SessionID。
然而如果你使用Html页面做FrameSet页面,第一个请求将是HTML页面,当该页面从服务器上返回是并没有任何Session产生,接着浏览器会请求Frame里面的页面,这样这些页面都会产生自己的SessionID,所以在这种情况下就会出现这种问题。当你重新刷新页面时,SessionID就会一样,并且是最后一个请求页面的SessionID。

问:是否可以将不同应用程序的Session保存在相同的SQL Server服务器的不同数据库上。
答:可以,请参考:
FIX: Using one SQL database for all applications for SQL Server session state may cause a bottleneck
http://support.microsoft.com/default.aspx?scid=kb;en-us;836680

问:在Session_End是我是否可以获得有效的HttpSessionState和HttpContext对象?
答:你可以在这个方法中获得HttpSessionState对象,可以直接使用Session来访问即可。但是不能获得HttpContext对象,因为该事件并没有和任何请求相关联,因此不存在上下文对象。

问:当我设置EnableSessionState为“ReadOnly”后,但是我在InProc模式下依然可以修改Session的值,这是为什么?
答:即使EnableSessionState标示为ReadOnly,但是在InProc模式下用户依然可以编辑Session。唯一不同的是,在请求过程中Session将不会被锁住。

问:当Session设置成cookieless后会有什么影响?
答:当把cookieless设置成true时,主要会有下面的约束:
1、在页面中不能使用绝对链接
2、在应用程序中在除了Http和Https之间的切换时需要完成一些其他的步骤。
如果发送一个链接给其他人,此时的URL里面将包含Session ID的信息,所以两个人将公用一个Session。

问:为了可以顺序访问Session的状态值,Session是否提供了锁定机制?
答:Session实现了Reader/Writer的锁机制:
当页面对Session具有可写功能(即页面有<%@ Page EnableSessionState="True" %>标记),此时直到请求完成该页面的Session持有一个写锁定。
当页面对Session具有只读功能(即页面有<%@ Page EnableSessionState="ReadOnly" %>标记),此时知道请求完成该页面的Session持有一个读锁定。
读锁定将阻塞一个写锁定;读锁定不会阻塞读锁定;写锁定将阻塞所有的读写锁定。这就是为什么两个框架中的同一个页面都去写同一个Session时,其中一个要等待另一个(稍快的那个)完成后,才开始写。

问:如果使用了cookieless,我该如何从HTTP页面定向到HTTPS?
答:请尝试下面的方法:
String originalUrl = "/fxtest3/sub/foo2.aspx"; 
String modifiedUrl = "https://localhost" + Response.ApplyAppPathModifier(originalUrl); 
Response.Redirect(modifiedUrl);

问:什么类型的对象可以保存在Session里?
答:这依赖使用的Session的模式,当使用的是进程内(InProc)的Session那么可以轻松的保存任何对象。如果你使用了非InProc的模式,则只能保存可以序列化和反序列化的对象,如果此时保存的对象不支持序列化,则不能保存到这种模式(非InProc)的Session里。

问:为什么每次请求的SessionID都不相同?
答:该问题可能是没有在Session里面保存任何信息引起的,即程序中任何地方都没有使用Session。当Session中保存信息之后SessionID将一直和浏览器相关,此时的SessionID将不会在变化。

时间: 2024-10-12 13:54:28

从别人那拷下来的几点Session使用的经验_实用技巧的相关文章

艾伟:从别人那拷下来的几点Session使用的经验(转载)

问:当页面中是否了frameset,发现在每个frame中显示页面的SessionID在第一次请求时都不相同,为什么?答:原因是你的frameset是放在一个htm页面上而不是ASPX页面.在一般情况下,如果frameset是aspx页面,当你请求页面时,它首先将请求发送到Web服务器,此时已经获得了SessionID,接着浏览器会分别请求Frame中的其他页面,这样所有页面的SessionID就是一样的,就是FrameSet页面的SessionID.然而如果你使用Html页面做FrameSet

防止别人盗链的好方法推荐_应用技巧

在浏览器的地址栏里直接输入一个doc或xls或jpg的文件的url路径,那么该文件会直接显示在浏览器里.而在很多时候我们希望能直接弹出下载提示框让用户下载,我们该怎么办呢?这里有两种方法: 1.设置你的服务器的iis,给doc等后缀名做映射 2.在向客户端发送时设置其contenttype 下面详细说明方法2 <% Response.Buffer = true Response.Clear dim url Dim fso,fl,flsize dim Dname Dim objStream,Con

[整理]如何恢复数据库的内容

恢复|数据|数据库 昨天帮一个朋友恢复了sql server 7.0 数据库.现在把过程写出来,大家一起分享: 我那个哥们是从别人那拷了一个数据库的数据文件 (c:\mssql7\data  目录下的文件) 最初我是用的: 在一台好的机器上重新安装SQL Server,建立相同的数据库设备(大小),和数据库停掉SQL Server,用拷贝出来的数据库文件覆盖刚建立的数据库文件,再重新启动SQL Server.但一直不可以.我猜关键是无法建立相同的数据库设备(大小). 后来采用了 系统存储过程:s

quick search-关于oracle11g下使用quick_search的问题

问题描述 关于oracle11g下使用quick_search的问题 关于oracle11g下使用quick_search的问题!急求!我安装完了oracle11g之后,使用正常,从别人那里拷来的quick_search,一打开就提示无安装的oracle信息,请检查!求解决!谢谢

华表CELL组件的应用_IT 业界

南京天相软件有限公司    朱孝兵 本人所在单位于二○○二年购买了Cell组件,此期间使用Cell组件开发了不少项目,现将自己使用的一些感受及经验整理成文,抛砖引玉之作,期待得到大家指点. 安 装 篇 Cell组件是遵循ActiveX标准的控件,很容易安装到自己的开发环境中. 1.安装华表公司的Cell组件. 2.打开DELPHI,选择ComponentImport ActiveX Control-菜单. 3.在Import ActiveX窗体中选择Cell5.2 ActiveX Contro

怎么修改这个数据库的名字啊 已经查到可能是这个数据库名称的错误

问题描述 无法打开登录所请求的数据库"db_smg".登录失败.用户'PC201309271327Administrator'登录失败.运行的时候无法打开登录所请求的数据库登录失败 解决方案 解决方案二:很急饿在线等解决方案三:库是谁维护的就找谁,让他给你开账号权限解决方案四:库是谁维护的就找谁,让他给你开账号权限,如果是名称错了,要么改代码,要么打开管理器,改数据库名解决方案五:引用3楼bdmh的回复: 库是谁维护的就找谁,让他给你开账号权限,如果是名称错了,要么改代码,要么打开管理

MyEclipse8中配置Tomcat7出错

问题描述 (毕业后一年多没有搞JAVA了,现在都很生疏,前不久买了本本了,现在想继续走JAVA开发这个方向,因为个人对这行非常爱好:并打算抓紧时间学习,争取在过年后,找一份JAVA开发相关工作,我相信自己的执著一定能成功的.但现在很迷茫,不知道怎么入手了,平时有时间就下载PDF书籍看,很希望能有一位老师指点迷津,感谢) 以下是问题: 开始我用MyEclipse8+tomcat6(安装版)配置启动正常,但后来我下载到tomcat7(压缩版),配置MyEclipse8时,就出现错误问题了. Coul

关于软文写作推广痛心疾首的呼吁

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 都知道软文是网络推广的利器,是网络推广人员必备的技能,那么究竟什么是软文?软文要注意哪些东西?百度一搜,N多的教程,多则乱,乱则迷糊,俺在这里呼吁:有关的高手专家们,切莫要继续误导新人了! 俺不是专家,不能给软文一个权威的定义,只能就此说说自己的想法,希望能给各位些许提示.俺目前的工作是编辑,说是负责软文写作,但是实质上做的却是更新网站内容的

超级强大的vim配置(vimplus)

From : http://www.cnblogs.com/highway-9/p/5984285.html From : http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html From : http://www.cnblogs.com/youxia/p/linux002.html From : http://blog.csdn.net/namecyf/article/details/7787479 最近在重新配置Vim,也在