当前位置: 首页 > 图文教程 > 服务器 > Windows服务器 > Session值不规律变化的一种可能解决方法

Windows服务器
Windows 2000系统下关闭端口的方法与思路
Windows2000系统如何找回丢失的管理员密码
如何在Windows 2000上安装配置防火墙
Windows 2000安全配置工具
针对Windows 2000优化Web服务器性能
Windows 2000超级技巧十则
如何修改Windows 2K远程终端默认端口
Windows 2000 SP4八大热点问题
Windows 2000中“NTLDR is missing”故障的解决
Windows 2000操作系统中ADSL的共享办法
Windows 2000开机耗内存40M秘技大公开
Windows 2000 常用系统进程列表
Windows 2000的一些Privilege
Win2000/XP与Win98互访
Windows 2000安装光盘的妙用
Win 2000/XP上网重启解决办法
深入改造Win2000“位置条”
在Win2000下“复活”老网卡
加快Win2000浏览网上邻居的速度
防患于未然 轻松做好Windows 2000安全策略

Windows服务器 中的 Session值不规律变化的一种可能解决方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-04   浏览: 75 ::
收藏到网摘: n/a

碰到一个很怪异的问题,当然,有点儿程序用到Session,在Session中存放了一个对象的数组,在本地机器上都没有出现什么问题,但上传到服务器,居然出现怪事儿,放于Session中的这个对象数组的个数、顺利会发生无规律的变化 我们有一个页面显示这个数组的信息,不停的刷新页面这个数组显示的内容在不停的变化,顺序、个数(有时候能显示全部的对象,有时却少几个),真是让人很恼火,你要丢就丢吧,老子最起码知道你会丢失,但你不丢失老自己变可有点儿不厚道啦。。。
网上查了查,终于找出来原因,原来是程序池的设置作怪,有个叫“Web 园”的东西不知道被那位同事改过,这一项数值的变化会引起Session值不稳定,具体设置是“打开IIS--打开“应用程序池”中具体项的属性页中的“性能”选项卡,如图:

下方的“web 园”项中的值保证值为“1”,如果不是1,就会出现例用这个程序池的程序Session不稳定的情况发生。
百度了一下儿“web 园”,解释如下:
复制代码 代码如下:

在您创建应用程序池时,就会通知 IIS 6 创建一个工作进程,以传送指派给该应用程序池的 Web 站点、文件和文件夹的内容。您可以将应用程序池配置为启动多个,而非一个工作进程,这样可以提高可扩展性。这个功能的名为 Web 园,是小型的“Web 农场”。您无需使用多台计算机来传送相同的内容(Web 农场),而是可以使用一台计算机中的多个进程来传送相同的内容。
在将 IIS 6 应用程序配置为 Web 园时,您只需在“应用程序池属性”的“性能”选项卡的“最大工作进程数”框中,设置一个大于 1 的工作进程数。如果这个值大于 1,每个请求都将启动一个新的工作进程实例,可启动的最多进程数为您所指定的最大工作进程数。后续的请求将以循环的方式发送至工作进程。
Web 园在您的应用程序资源有限的情况下非常有用。例如,如果您到数据库的连接很慢,那么您可以使用多个工作进程来增加用户吞吐量,从而增加到数据库的连接数。
尽管在有些情况下使用 Web 园的用处非常大,但是要注意,每个工作进程的会话信息都是唯一的。由于请求以循环的方式路由到应用程序池工作进程,因此 Web 园对于会话信息存储在进程中的应用程序作用可能不大。在少数情况下,让多个工作进程运行同一个应用程序会造成资源竞争。例如,如果所有工作进程都试图将信息记录到日志文件中,或是使用那些不是专用于多个并发访问的资源,那么可能出现资源竞争问题。