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

Windows服务器
JSP服务器的安装与配置
Windows 2003下如何提高FSO安全性
配置Windows Server 2008高级防火墙
详述Windows 2003 SP2入门IDS构建过程
Windows中IIS内FTP服务器高级配置
Windows Server 2008防火墙如何配置
Windows 2003搭建Apache PHP MySQL环境经验分享
Windows 2003下配置IIS的技巧
下代Windows Server2008 IIS 7.0特性
Apache/IIS的日志分析工具:AWStats
备份和恢复IIS服务器设置说明
Win2000下PHP服务器安装攻略
Windows 2000安全的八招好秘籍
Windows2003企业版开启FSO的方法
Windows服务器下设置IIS的问题
Windows Server 2008网络性能
Windows Server 2003十四招加速大法
Win 2003系统不能打开chm文件的问题
Windows 2003服务器管理技巧
Windows2000合理配置和管理有方是比较安全的

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


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