Session服务器配置指南与使用经验(3)
来源:asp之家 发布时间:2009-07-23 09:34:00
5.StateServer不支持负载均衡, 所以如果大并发推荐使用SqlServer模式, 可以享受到SqlServer的高性能和安全性.虽然存储效率会有下降.
6.需要让所有机器的MachineKey相同.在Machine.Config中配置:
<machineKey
validationKey="1234567890123456789012345678901234567890AAAAAAAAAA"
decryptionKey="123456789012345678901234567890123456789012345678"
validation="SHA1"
decryption="Auto"
/>
(2)SqlServer模式:
1. 要保存在Session中的对象是可序列化的。
2. 如果使用了默认是数据库, 则在客户端配置文件中的数据库链接字符串的用户,需要拥有ASPState和tempdb两个库的dbowner权限.
3. 在SQLServer模式下,session过期是由SQL Agent使用一个注册任务完成的,要确认SQL Agent已经运行。否则无法清理过期的Session数据, 会导致数据库数据一直增加.
4. 如果使用SqlServer模式时, 对于Web场中的各服务器的 ASP.NET 应用程序路径必须是相同的。请在 IIS 配置数据库中对 Web 场中的所有 Web 服务器进行 Web 站点的应用程序路径同步。大小写一定要相同,因为 Web 站点的应用程序路径是区分大小写的。
5.需要让所有机器的MachineKey相同.在Machine.Config中配置:
<machineKey
validationKey="1234567890123456789012345678901234567890AAAAAAAAAA"
decryptionKey="123456789012345678901234567890123456789012345678"
validation="SHA1"
decryption="Auto"
/>
(3)Session:
1. 不能直接通过Session服务器在ASP.NET和ASP之间共享Session. 请使用微软提供的解决方案:
http://msdn.microsoft.com/zh-cn/library/aa479313.aspx
2. 在不同的应用程序或一个网站的不同虚拟目录之间无法共享Session
3. Session的过期时间是滑动时间.
4. Session存储.NET自带的值类型性能最优. 存储对象会降低性能.
(4)SessionID:
1.SessionID 还可以保存在URL上, 设置Web.Config文件中的System.Web/sessionState节点的Cookiesless属性即可:
<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服务器搭建人员有所帮助.


猜你喜欢
- 你的服务器上是否存有一些不能随意公开的重要数据呢?当然有吧?而最近,偏偏服务器遭受的风险又特别大,越来越多的病毒、心怀不轨的黑客,以及那些商
- 文章标题写的可能有点容易误解,但不知道取个什么名字比较合适,姑且这个就这标题把,还是来个稍微具体点的描述:今日登入我的VPS,发现一个ASP
- 一、软件、系统镜像软件:VMware 14镜像:CentOS8 ,镜像官网下载地址 :http://mirror.jdcloud.com/c
- 所谓虚拟主机,就是n个网站都放在一台服务器上。对于访问量较小的网站,选择独立主机太浪费了,所以一般都是使用虚拟主机来搭建网站。目前有很多提供
- 启用卷影副本功能非常简单,在文件服务器管理界面中找到“配置卷影副本”链接,也可以在NTFS卷的右键属
- 许多单位都已建立了局域网和广域网,并在网上运行业务处理程序。其实只要作一些简单配置就可以给公司员工提供新闻、信息浏览、传输文件、内部邮件、专
- 前言参考资料:《Spring Microservices in Action》《Spring Cloud Alibaba 微服务原理与实战》
- 这几天,公司终于放假了,终于可以安下心来好好学些proftp+mysql+quota。 安装proftp之前,必须先做一个工作,假如你的my
- 本教程讲解的是如何全新安装 UCenter 1.5.0。在安装 UCenter Home、Discuz!、SupeSite、X-Space
- 随着互联网的发展,e-mail迅速成长成为主要的网络信息传递工具。面对大量要求能够快速,廉价,和高可信赖的e-mail需求,很多公司和个人都
- 从以往记录来看,使用子域名与子目录的时间几乎是对等的。顺便提示一下,在一个象subdomain.example.com/subdirecto
- CloudStack 安装及使用过程中常见问题汇总 &nb
- 这两年大家都扎堆做地方站,但是一般市级地区都有本地门户,现在做是和那些老站无法抗衡的。所以好多站长选择做县级论坛。哎,都想抓住网络上最后一根
- 容器数据卷介绍什么是数据卷将运用与运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对数据的要求是持久化的。容器之间希望有可能共享数据
- 记住一句话:执行ASP程序的地方不允许写入文件;允许写入文件的地方不允许运行ASP程序.在IIS里,选择不允许写入文件的目录如上传图片的UP
- 晨报讯(记者 张黎明)2.164×0.4567 ,当你在百度输入这个相乘的要求,第一个结果将是乘积0.9882988。这还只是其中一个聪明的
- 大家慢慢的都开始知道软文在网络营销里的重要性,但是大部分的同学还停留在知其然而不知其所以然的阶段。写一篇与众不同又可以受到关注的软文是需要一
- 一、Ubuntu Server 18.04.5 LTS系统安装Ubuntu分为桌面版(desktop)和服务器版(Server),下面为大家
- 10月12日消息,网宿科技今天上午举行了创业板首次公开发行A股网上路演,其董事长刘成彦在回答投资者提问时表示,公司目前对视频网站客户态度谨慎
- IIS安全安装 要构建一个安全的IIS服务器,必须从安装时就充分考虑安全问题。1. 不要将IIS安装在系统分区上。2. 修改IIS的安装默认