IIS6中应用程序池和Web园,解决Session丢失问题

最近服务器出现了几个问题:多个.NET版本造成网站瘫痪和Session丢失。

针对第一个问题可使用多个应用程序池来解决;第二个采用了把session存在aspnet_state进程中(aspnet_state进程独立于w3wp.exe);

但对第二个问题很纠结,为什么Session存在w3wp进程中会丢失,之前猜测可能是其他应用程序占用内存太大,以至于系统回收内存把session给回收了。但继续研究才发现有3个w3wp进程,这事由于Web园被设置了。下来来理解下相关概念和原理:

首先了解下应用程序池

应用程序池是一个工作进程或多个工作进程的集合,默认情况下每个应用程序池都会有一个工作进程(w3wp.exe)与之对应,由于工作进程是相互隔离的,所以一个应用程序池发生问题不会对已另一个应用程序池中的应用程序造成影响。这也被常被用于解决多个.NET版本问题。

再来了解下Web园

一个应用程序池默认是开启一个工作进程,但也可以开启多个工作进程,这样可提高性能,这个功能名为Web园,是小型的“Web农场”,您无需使用多台计算机来传送相同内容(Web农场),而是可以使用一台计算机中的多个进程来传送相同内容。
配置Web园:

IIS->应用程序池->选中使用的应用程序池->右键属性->性能->Web园->最大工作进程数

设置最大进程数大于1,如果这个值大于1,每个请求将启动一个新的工作进程实例,可启动的最多进程数位您所设置的进程数,最大可设置为4000000.后续请求将以循环的方式发送至工作进程。但使用Web园要考虑以下两点:

  1. 每一个工作进程都会消耗系统资源和CPU占用率,太多的工作进程不仅会导致系统资源和CPU利用率急剧消耗,还会造成资源竞争;
  2. 每一个工作进程都具有自己的状态数据,由于请求以循环的方式路由到应用程序池工作进程,这就造成数据不一致,比如session丢失等;

还有些朋友发现有多个w3wp进程,很不理解,有些朋友甚至认为是病毒。其实这完全和Web园的设置有关,一个工作进程就是一个w3wp.

转载于:https://www.cnblogs.com/zhaiqianfeng/archive/2012/06/27/4616633.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IIS应用程序池回收是指IIS(Internet Information Services)在一定条件下自动终止和重新启动应用程序池的过程。 应用程序池IIS一个独立的进程,在运行网站时负责处理HTTP请求,并将静态或动态内容返回给客户端。由于长时间运行或资源占用过多,应用程序池可能出现问题,导致网站响应缓慢甚至崩溃。 为了确保网站的性能和稳定性,IIS提供了应用程序池回收功能。当满足以下条件之一时,IIS会自动回收应用程序池: 1. 配置更改:修改了应用程序池的相关设置,例如CPU占用限制、内存限制等。 2. 定时回收:设定了应用程序池的闲置时间或过期时间,超过指定时间没有请求访问应用程序池时,IIS会自动回收它。 3. 内存限制:当应用程序池使用的物理内存超过了设定的限制时,IIS会回收应用程序池。 4. CPU限制:当应用程序池的CPU使用率超过限制值时,IIS会回收应用程序池。 5. 请求失败:当应用程序池连续多次失败或崩溃时,IIS会回收它。 在回收过程IIS会终止应用程序池的运行的进程,并且清除内存的所有对象。然后,IIS会重新启动应用程序池,以确保网站继续正常运行。 应用程序池回收是IIS一个关键的功能,它可以提高网站的性能和稳定性。但是,频繁的回收可能会导致一定的延迟,因此需要根据实际情况进行合理的配置和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值