快速业务通道

ASP.NET服务器控件封装-【事件】-1.2【数据回发】

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20
<sessionState
   cookieless="UseUri"
    />

2. 一般在Session超时或删除之后,SessionID保持不变. 因为Session过期后 会在服务器端清除数据, 但是SessionID保存在用户浏览器上, 所以只要浏览器不 关闭则HTTP头中的SessionID保持不变.

3.关闭浏览器后再访问, SessionID会不同.

4.每打开一个IE6窗口, SessionID都不同, 在IE6中两个窗口的Session不能共 享.

5.FireFox的标签页和新的FireFox窗口, SessionID都相同, 在FF的窗口和标 签页上Session能共享.

6.对于包含FrameSet的页面,比如:

<frameset cols="25%,50%,25%">
 <frame  src="SessionID.aspx">
 <frame src="SessionID.aspx">
  <frame src="SessionID.aspx">
</frameset>

如果后缀名是.htm并且.htm文件没有交给ASP.NET的ISAPI处理, 那么根据服务 器速度在每个Frame页面生成不同的SessionID, 再刷新后相同都等于最后一个 SessionID.

解决办法是将.htm后缀改成.aspx, 或者将.htm文件交给ASP.NET的ISAPI处理.

(5)Session_End事件:

1. Session_End仅在InProc模式中可用

2. 关闭浏览器,Session_End是不会触发的。HTTP是一种无状态协议,服务器 没有办法知道你的浏览器是否已经关闭。

3. 当Session因为时间过期或调用Session.Abandon时,Session_End才会触发 .Session.Clear()仅仅是清除数据,但没有删除session。

4. Session_End由一个后台线程触发,使用工作者进程账号运行. 所以程序不 会通知发生的错误.

5. 在Session_End访问数据库要考虑权限问题. Session_End是用运行工作者 进程(aspnet_wp.exe)的帐号运行的,这个账号可以在machine.config中指定。因 此,在Session_End中,如果使用integrity security连接SQL,它将使用工作者 进程账号身份连接,这可能会引起登录失败.

6.因为Session_End是有独立线程出发的, 所以在Session_End中无法使用 HttpContext对象(Request,Response,Server等对象都在HttpContext中), 即无 法使用 Response.Redirect 和Server.Transfer等方法.

七.总结

我已经使用SqlServer模式对公司的多台服务器实现了Session共享, 服务器重 启也不会导致用户预定过程重新开始(预定过程需要的Session不会丢失).希望 本文对具体的Session服务器搭建人员有所帮助.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号