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

Windows服务器
制作Windows 2003操作系统Ghost文件
Windows 2003共享资源拒绝访问修复实录
轻松架设Windows 2003中Web服务器
用Windows 2003系统架设邮件服务器
如何在Windows 2003中得到登陆密码
Windows 2003实用技巧七则
Win 2003系统也玩图片收藏屏保
Win 2003操作系统四例精彩问答
Windows 2003操作系统优化技巧
Win 2003英文系统中玩转汉字
Win 2003的“远程桌面”
简化Windows 2003域控制器密码
远程如何启用Win 2003桌面
Win 2003两种自动登录的方法
Win 2003中打开DirectX加速
Win 2003分发功能给网管减负
Win 2003如何转换成PC版系统
XP的小游戏移植到Win2003
九招Win 2003系统设置小技巧
Win2003播放画面粗糙的解决策略

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-04   浏览: 77 ::
收藏到网摘: 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 园对于会话信息存储在进程中的应用程序作用可能不大。在少数情况下,让多个工作进程运行同一个应用程序会造成资源竞争。例如,如果所有工作进程都试图将信息记录到日志文件中,或是使用那些不是专用于多个并发访问的资源,那么可能出现资源竞争问题。