什么是IIS应用程序池以及应用程序池详解

什么是应用程序池呢?这是微软的一个全新概念:应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配置。因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响。

Windows 2003同时支持两种工作模式,默认为ISS 6.0工作进程隔离模式。工作进程隔离模式防止一个应用程序或站点停止了而影响另一个应用程序或站点,大大增强了IIS的可靠性。那么如何设置两种工作模式呢?

启动IIS管理器,右击网站,选择“属性”,打开属性对话框。在IIS 6.0工作进程隔离模式下,所有的应用程序代码都在隔离环境中运行,它们是如何进行隔离的呢?Windows 2003新增了应用程序池,工作进程隔离模式允许客户创建多个应用程序池,每个应用程序池都可以有不同的配置。因为这些应用程序池直接从内核(而非WWW服务)接收它们的请求,所以性能和可靠性得到了增强。要隔离运行在同一台计算机上但属于不同网站的Web应用程序,需要为每个网站创建单独的应用程序池。

创建应用程序池

在IIS管理器中,打开本地计算机,右键单击“应用程序池”,选择新建“应用程序池” (必须在工作进程隔离模式下才能建立应用程序池) 。“应用程序池名称”框中,输入新的应用程序池名称。如果在“应用程序池 ID”框中出现的 ID (如:AppPool #1)不是您想要的,可进行重命名。如果您单击了“将现有应用程序池作为模板”,请在“应用程序池名称”框中右键单击想要用来作为模板的应用程序池。最后单击[确定]。

指派应用程序池

在 IIS 管理器中,右键单击您要为其指派应用程序池的应用程序,然后单击“属性”。 单击“主目录”选项卡,确认您正在指派的目录或虚拟目录的“应用程序名”是否已被填写。如果“应用程序名”框尚未被填写,请单击“创建”,然后输入名称。

在“应用程序池”列表框中,选择您想要为其指派的应用程序池的名称。最后单击[确定]。

一起来看看有关应用程序池的一些问题。应用程序池的“属性”对话框有四页——回收,性能,运行状况,标识,如图六所示。在这些选项页中,最引人注目的恐怕就是“回收”页,使用该选项页可以管理工作进程的回收。在工作进程隔离模式中,IIS可以配置成定期重新启动应用程序池中的工作进程,从而更好地管理那些有错误的工作进程。这确保了池中的应用程序运行正常,并且可以恢复丢失的系统资源。为了回收工作进程,失败工作进程接收请求的能力将被限制,直到它处理完存储在请求队列中的所有剩余请求。为了排出当前请求,可以给予进程配置限制。同一命名空间组的替换工作进程在旧的工作进程停止前启动,从而防止服务中断。旧的进程完成其未决的请求,然后正常关闭,或者如果在达到了配置的时间限制、请求数、设置的时间计划,或当达到指定的内存用量限制后仍没有关闭,则明确地终止进程。默认情况下,应用程序池每隔1740分钟(29小时)回收一次。

W3SVC根据“运行状况”页的选项来判断应用程序池运行是否正常,包括:每隔指定的时间Ping工作进程,时间按秒计,默认值30秒启动时间限制(工作进程必须在指定的时间内开始)关闭时间限制(工作进程必须在指定的时间内关闭)是否启动快速失败保护(如果在指定的时间段内一定数目的工作进程发生失败,则禁用应用程序池)。另外,ISAPI应用程序(包括ASP.NET和asp.dll)可以声明自己不再适合提供服务,要求回收。

默认情况下,当IIS 6.0回收一个池时,它会使用一种称为overlapped recycle的回收技术。在这种回收模式下,失败的工作进程仍会保持运行状态,同时创建一个新的工作进程。IIS 6.0把新传入的请求传递给新的工作进程,但不拆除老的工作进程,直至老的工作进程处理完它队列中的请求,或者遇到超时错误。在此期间,TCP/IP连接不会丢失,因为有http.sys保持着连接的有效性。当失败的工作进程超时出错时,下一个请求传递给工作进程的请求是新的请求,因此原来保存在进程中的会话信息就会丢失。所有这类回收操作都自动进行,无需管理员干预,而且在大多数情况下,不会造成明显的服务中断现象。如有必要,可以将配置数据属性LogEventOnRecycle的值设置为1,指示W3SVC执行回收操作时生成一条事件日志记录。

对于那些不能以多个实例运行的应用程序,overlapped recycle回收技术可能引起问题。如果遇到这类问题,可以将配置数据属性DissallowOverlappingRotation的值设置成True(1),关闭某个应用程序池回收操作时的进程“重叠”现象。另外,对于失败的工作进程,有时我们可能不想将它拆除,仍旧保留该进程,以便检测和寻找发生问题的根源,这时可以将配置数据属性OrphanActionExe设置成执行文件的名字,使得工作进程成为“孤儿”时执行文件仍保持运行状态。

另一个与应用程序池有关的特性是,IIS 6.0允许将应用程序池配置成一个Web园(Web Garden)。要理解Web园的概念,可以设想这样一种情形:假设有一个IIS 5.0服务器和三个Web网站,每一个Web网站运行着相同的应用程序,如果IIS 5.0能够自动按照圆形循环的模式将请求依次发送给这些功能上等价、实际上分离的Web网站,将负载分离到三个不同的进程,就可以构成一个小型的Web农场(Web Farm)——这就是Web园。

在IIS 6.0的Web园中,我们不必创建额外的Web网站,只要指定用于某个应用程序池的工作进程的数量就可以了。具体的配置步骤是:打开应用程序池的“属性”对话框,转到“性能”页,在“Web园”下面的“最大工作进程数”输入框中输入进程数量,如图八。当服务器的负载较小,不需要额外的工作进程时,IIS 6.0在一定的时间后(默认20分钟,可配置)自动缩减实际的工作进程数量如果负载变大,需要额外的工作进程,IIS 6.0再次增加工作进程数量。这一切操作都自动进行,不需要管理员干预。

两个新的配置数据属性——SMPAffinitze和SMPAffinitzeCPUMask——允许配置为工作进程指派的特定处理器:将SMPAffinitized属性设置成true表示应该把分配给应用程序池的特定工作进程指派给特定的CPU,SMPProcessorAffinityMask属性用来配置十六进制的处理器掩码,该十六进制处理器掩码指出应用程序池中的工作进程应该绑定到哪个CPU。

(0)

相关推荐

  • 配置IIS应用程序池的详细介绍(iis6)

    IIS应用程序池优化方案 服务器经常产生"应用程序池 'DefaultAppPool' 提供服务的进程关闭时间超过了限制.进程 ID 是 '3504'."的错误,导致iis处于假死状态,经了解是IIS应用程序池的设置问题.解决方法如下(红色字为标记): Internet 信息服务(IIS)管理器->应用程序池->DefaultAppPool->右击属性 一.回收 1.回收工作进程(分钟):选中,值为1740 (800) 2.回收工作进程(请求数目):(不选)(原先设置

  • IIS应用程序池自动停止 关闭 假死 处理集锦

    1:没有打SP1补丁的时候会出现这个IIS6.0假死问题,但现在微软都在自动更新里面出补丁了,一般你打好最新补丁后是不会出现此问题了 2:你限制了应用池 的资源过小 3:你限制了内存使用 4:就是服务器自身内存太小 5:就是ACCESS数据库太大或查询太多 6:不同网站用不同应用池 7:设置回收时间,很多人以为设置回收池越短越好,其实是错误的 8:windows 2003系统iis6访问本机的站点时提示"Service Unavailable": 查看iis的应用程序池,状况提示为:未

  • 详细解说IIS应用程序池以及运用程序池回收AppPool第1/2页

    因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响. Windows 2003同时支持两种工作模式,默认为ISS 6.0工作进程隔离模式.工作进程隔离模式防止一个应用程序或站点停止了而影响另一个应用程序或站点,大大增强了IIS的可靠性.那么如何设置两种工作模式呢? 启动IIS管理器,右击网站,选择"属性",打开属性对话框(图1). 在IIS 6.0工作进程隔离模式下,所有的应用程序代码都在隔离环境

  • iis应用程序池监控方法实例

    目的:公司服务器IIS有十几个应用地址池,总在不经意间停掉一个,停止线系统日志里会有一大堆警告日志,然后就停掉了,分析了好几次,网上有人说是某一个网站的问题应该查网站,但是网站又有那么多地址,谁知道从哪个请求开始就把应用地址池给弄挂掉了啊,白天还好随时有人看着服务器在,晚上停了就麻烦了,所有有了需求,自动监控应用地址池.其实方法很简单,就是定时对应用地址池遍历一遍,检查是否有未启动的应用地址池,有的话就执行启动命令. 复制代码 代码如下: /// <summary>        /// II

  • IIS服务器中部署PHP案例详解

    部署网站前查看一下系统是否已经安装CGI 1.启动iis服务器,打开IIS服务器 打开IIS服务器,点击网站,右击"添加网站" 2.创建网站 点击"添加网站"后,进入页面填写网站相关内容,如:网站名称.物理路径(网站所在文件夹),点击"确定"创建成功 3.PHP设置 点击创建好的网站,点击"处理程序映射",点击右侧的"添加映射模块",在弹出层中输入对应的参数,点击确认 设置默认文档 点击"默认文档

  • 如何利用IIS调试ASP.NET网站程序详解

    前言 在实际的开发当中,相信很多的开发者在开发调试ASP.NET网站时候都是直接通过Visual Studio工具的编译运行来调试的. 一般情况下,这种调试方式也不会有多少问题,但有时候我们会发现这样的一个情况,就是明明在本地调试运行都没有问题的网站,部署到服务器IIS上,就出现无法描述的线上问题.这时候,就要排除服务器环境是否跟本地环境一样,其中一点还要涉及到IIS的配置的排除. 那问题来了,我们能不能在开发的时候,就部署在IIS上调试,而不是直接使用Visual Studio的运行调试,这样

  • 设置好的iis服务器怎么打开网页(图文详解)

    让自己电脑上的网页在局域网中可以访问到,就需要我们使用IIS服务器,将网页添加到服务器上的网站,那么设置好IIS服务器之后怎样在浏览器中进行访问呢?下面我们小编告诉你! 设置好iis服务器怎么打开网页 首先我们打开IIS服务器,将服务器的下拉菜单打开,然后打开网站的下拉菜单,找到我们新建的网站. 然后我们在新建的网站位置右击鼠标,选择"切换到功能视图"选项. 这样我们就进入到了IIS服务器的功能视图页面中,可以看到左侧是我们网站所在文件夹的内容,右侧是可以使用的功能,我们选择"

  • Win2003下IIS+PHP+MySQL+Zend配置步骤详解第1/2页

    一.软件的获取 1.php首先去http://www.php.net/downloads.php下载最新的PHP 5.2.0版本. 2.MySQL可以在http://dev.mysql.com/downloads/mysql/5.0.html#downloads下载到最新的5.0.xx版本. 3.Zend Optimizer可以去http://www.zend.com/free_download/optimizer下载最新的3.X.X版本. 4.phpmyadmin可以到http://www1.

  • IIS短文件名漏洞复现图文详解

    一.漏洞描述 此漏洞实际是由HTTP请求中旧DOS 8.3名称约定(SFN)的代字符(~)波浪号引起的.它允许远程攻击者在Web根目录下公开文件和文件夹名称(不应该可被访问).攻击者可以找到通常无法从外部直接访问的重要文件,并获取有关应用程序基础结构的信息. 二.漏洞原理 IIS的短文件名机制,可以暴力猜解短文件名,访问构造的某个存在的短文件名,会返回404,访问构造的某个不存在的短文件名,返回400. 漏洞成因: 为了兼容16位MS-DOS程序,Windows为文件名较长的文件(和文件夹)生成

  • windows第七层负载均衡_基于IIS的ARR负载均衡详解

    载均衡有很多种方法,有硬件负载均衡,软件负载均衡,还可以从域名解析下手. 不过,今天只讲软件负载均衡. 软件负载均衡一般分两种,从网络协议来讲(tcp/ip),主要集中在第四层和第七层进行负载均衡. 第四层就是基于IP进行负载均衡.后面还有一篇文章讲这个. 第七层就是应用层.比如各种的WEB服务器.今天就讲讲IIS的负载均衡. 第七层的Web负载均衡,很多web服务器都支持,比如IIS,Nginx,apache等.现在主要讲一下windosw下IIS如何使用负载均衡 IIS使用ARR反向代理,实

  • 详解IIS中URL重写工具的匹配URL-规则模式(rule patterns)

    rule patterns规则模式在IIS的URL重写模块中,是较为关键的设置.只有规则模式的URL匹配成功时,其他的规则才能起到作用.规则模式的匹配URL设置主要是匹配URL中的路径部分,一般使用正则表达式和通配符对URL路径进行匹配,下面会仔细的说明. 首先要了解规则模式是匹配URL中的哪一部分,假设当前有网站的URL地址为http://shiyousan.com/Home/Index?page=1,那么规则模式匹配的部分就是Home/Index,域名的主机部分和参数部分如果要匹配,则需要在

  • 详解IIS中的重写工具下关于操作重定向URL中的{R:N}与{C:N}使用介绍

    URL Rewrite(URL重写工具)作为IIS下较为常用的模块组件, 提供了重写.重定向.自定义响应.中止请求等功能.但是其相关的中文资料比较缺少,官方倒是有完整和详细的英文文档,之前我在项目中遇到需要设置重写/重定向URL操作规则时,对于范例中的{R:N}和{C:N}规则就理解的十分辛苦,因此写下本文分享下经验. 这里先附上官网的文档,其实文档链接在IIS的URL重写模块的右边菜单就有:URL Rewrite Module Configuration Reference(URL重写模块配置

  • Asp.net core利用IIS在windows上进行托管步骤详解

    摘要 最近项目中,尝试使用asp.net core开发,在部署的时候,考虑现有硬件,只能部署在windows上,linux服务器暂时没有.下面话不多说了,来一起看看详细的介绍吧. 部署注意事项 代码中启用iis和Kestrel public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[]

  • 什么是IIS应用程序池以及应用程序池详解

    什么是应用程序池呢?这是微软的一个全新概念:应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配置.因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响. Windows 2003同时支持两种工作模式,默认为ISS 6.0工作进程隔离模式.工作进程隔离模式防止一个应用程序或站点停止了而影响另一个应用程序或站点,大大增强了IIS的可靠性.那么如何设置两种工作模式呢? 启动IIS管理器,右击网站,选择

随机推荐