最近服务器出现了几个问题:多个.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

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

  1. 使用StateServer机制来解决session丢失而造成用户验证失败

    由于应用程序池回收,重启,aspnet_wp.exe或w3wp.exe 进程意外停止等原因而照成session信息丢失,系统会重新验证用户信息,微软对此的解决方案是使用StateServer机制后者改 ...

  2. IIS 6.0 web园

    一.了解web园 IIS6.0提供了一个web园的功能,允许将应用程序池配置为多个进程运行,来快速有效的提高网站性能: 二.使用注意 1.每个工作进程都需要一定的内存和cpu,不能太多: 建应用程序池 ...

  3. IIS中应用程序池中的高级设置分析

    我们在设置站点的时候需要选择应用程序池如下图 但我们需要用自己的应用程序池,那么就要自己创建了 基础设置这里就带一下,给你的应用程序池命名,.net CLR版本一般选四点零就好了,托管管道模式根据需要 ...

  4. IIS6应用程序池中间的 Web 园

    在IIS6中每个应用程序池在独立的进程中运行,默认每个应用程序池开启一个进程 在应用程序池属性的"性能"页,可以设置每个程序池的进程数,如下图 今天修改了论坛(asp程序)配置,把 ...

  5. IIS6.0的web园--最大工作进程数

    IIS 6.0允许将应用程序池配置成一个Web园(Web Garden).要理解Web园的概念,可以设想这样一种情形:假设有一个IIS 5.0服务器和三个Web网站,每一个Web网站运行着相同的应用程 ...

  6. IIS 6.0的web园 最大工作进程数

    这篇文章主要介绍了IIS 6.0的web园 最大工作进程数,需要的朋友可以参考下 IIS 6.0允许将应用程序池配置成一个Web园(Web Garden).要理解Web园的概念,可以设想这样一种情形: ...

  7. IIS6.0应用程序池回收和工作进程【转:http://www.cnblogs.com/freshman0216/archive/2008/06/02/1212460.html】...

    公司的一个网站程序长时间运行后,速度变慢,重新启动网站后速度明显变快,估计是网站程序占用的内存和CPU资源没能及时释放,才需要每隔一段时间重启网站释放资源.但手工重启总不能算解决问题的方法,怎样才能实 ...

  8. 在 sysservers 中找不到服务器,在 sys.servers 中找不到服务器的解决办法,自己解决的...

    一开始提示,在服务器中找不到在 sys.servers 中找不到服务器 'QPAccountsDBLink',先用select * from sys.servers  ,发现只能查到一个服务器名称,后 ...

  9. jquery.ajax的url中传递中文乱码问题的解决方法

    jquery.ajax的url中传递中文乱码问题的解决方法 JQuery JQuery默认的contentType:application/x-www-form-urlencoded 这才是JQuer ...

最新文章

  1. 解决Windows10下无法对docker容器进行端口访问(端口映射的问题)
  2. SAP生产订单状态详解
  3. 分享9个最棒的代码片段资源网站
  4. 我犯的错误--struts标签s:radio
  5. 使用函数进行邮件发送的示例
  6. jquery关于checkbox在ie下的一个bug
  7. 【转载】Android之用PopupWindow实现弹出菜单
  8. HDU 4417 划分树写法
  9. List集合操作一:遍历与查找
  10. 打印准考证服务器异常显示,2020准考证打印30个常见问题汇总及解决办法
  11. 【你可能不知道的】 PICkit3 脱机烧写 program to go 模式
  12. Android播放音频到耳机,Android应用开发之android插入耳机状态使用扬声器外放音乐...
  13. linux查找文件夹命令
  14. 解决IE访问Oracel OEM证书错误
  15. 斐波那契数列与数列求和
  16. linux内核mtd分区,linux内核MTD分区
  17. 大数据工程师(开发)面试系列(7)
  18. Linux网卡配置文件详解:
  19. 长文本口语语义理解技术系列①:段落分割实践
  20. 时序知识图谱的增量构建

热门文章

  1. python ray分布式_分布式框架Ray及RLlib简易理解
  2. pandas nan判断_【跟着stackoverflow学Pandas】 删除带有NaN的行
  3. 新蓝剑java_Ubuntu 8.10 编译安装飞鸽(IPMsg 0.9.6)
  4. mysql workbench 存储过程_MySQL Workbench创建存储过程教程示例
  5. java properties $_Java读取Properties文件的六种方法
  6. mysql binary like,在MySQL中为BINARY LIKE操作建立索引
  7. Java分段函数选择结构,编程流程作业选择结构(50题)
  8. linux flush 磁盘,linux 磁盘IO栈和优化思路
  9. ajax ashx session 为空,jquery ajax post 方式ashx文件取不到值。
  10. html ready 调用函数,Chrome和JQuery问题 - $(document).ready(function(){});在页面加载之前调用...