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

Windows服务器
配置 Windows Server 2003-IIS 6
Windows 2003系统也玩图片收藏屏保
远程如何修改Windows 2003机器名
在Windows 2003中重置TCP/IP
查看Windows 2003系统日志的简单办法
根治Windows 2003操作系统登录及关机麻烦
为Windows 2003安全—层层设防
保障Windows Server 2003域控制器的安全性
自己动手抠出2003中的IIS6安装程序
Windows 2003操作系统十例最新配置技巧
架设维护Windows Server 2003网页服务器
轻松配置windows2003自带mail服务器
Windows 2003系统中如何实现网络共享还原
Windows Server 2003全接触(1)
Windows Server 2003全接触(2)
Windows Server 2003全接触(3)
Win Server2003常见问题及解决然方案
Windows Server 2003 防火墙
备份与恢复Win2003的AD数据库
Windows Server 2003的Web接口

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


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