IIS系列:三、管理应用程序池

来源:互联网 发布:spring boot 打印sql 编辑:程序博客网 时间:2024/05/22 10:54

简介:本文介绍如何创建应用程序池以及如何修改应用程序池配置。

管理应用程序池:

1、右键点击应用程序池,选择“添加应用程序池“;


2、输入应用程序池名称,选择支持的.Net版本,V2.0支持.Net Framework 2.0、3.0、3.5,V4.0支持.Net Framework 4.0(需要在系统上先安装.Net Framework 4.0),No Managed Code不支持.Net Framework,这里选择最新版本的V4.0,托管管道模式是从IIS7和IIS8引进的控制请求方法,可以使ASP.NET程序的访问比IIS6更加快速;


3、将默认站点移动到新建的应用程序池;


4、使用应用程序池主要有以下几点考虑:

1)把不同的应用隔离开,应用之间互不影响,一个程序挂了不会影响其他应用程序池应用的使用;

2)把不同应用隔离开,可以限制一个应用访问另外一个应用的资源,比较安全,例如一台服务器上部署了多个网站,有的是公开(匿名认证)的网站,而有的网站需要经过身份验证后才可以登录,就需要限制登录公开网站的用户直接访问另外一个网站的内容;

3)可以把相同配置、相同使用场景的应用放在一个程序池中,这样可以方便管理;

应用程序池有一个”回收“的功能,应用程序池运行期间会有一个w3wp.exe的进程(服务器空闲20分钟会自动关闭该进程,在下一次新的请求到达时重启开启进程),回收指的是回收这个进程,即释放内存,重新以干净的状态运行应用程序池。

IIS Worker Process接收来自客户端的请求并将服务器响应的结果返回给客户端。


5、当应用程序池出现故障时,可以通过回收应用程序池解决,不需要重启服务器,这样不会影响其他应用程序的正常使用;


6、在回收的过程,为了不中断新的连接请求,会在旧的w3wp.exe进程结束前开启一个新的w3wp.exe进程,回收过程可以看到两个w3wp.exe进程。在回收过程中,可能会导致用户会话状态信息丢失。有的应用程序设计时已经考虑了进程的回收,可以保持会话相关的信息,回收过程用户无感知。


7、选择”正在回收“按钮,可以修改默认的回收设置;


8、默认是1740分钟(29小时)回收一次,也可以设置达到固定请求数量后回收、在指定的时间点回收、基于内存最大量的回收;


9、设置回收事件日志,这里的设置是基于回收条件设置的,回收条件设置了固定时间,这里只能配置固定时间间隔的回收事件,回收事件勾选”按需、“配置更改”、“非正常状态的ISAPI“;(程序员可能会使用Internet Server Application Programming Interface ,这样IIS可以监控应用程序的健康性,应用程序出现故障时可以自动请求回收)


10、在事件查看器中筛选来源为WAS(Windows Active Process Service)的系统日志;


11、手动回收应用程序池,可以在系统日志中看到回收事件;


使用Powershell管理应用程序池:

12、使用Powershell查看默认应用程序池;


13、创建新的应用程序池;


14、查看应用程序池的属性信息;


15、将默认网站移动到新的应用程序池;


16、查看w3wp.exe进程,回收过程可以看到两个进程(ProcessID不同);

Get-WmiObject win32_process -filter "name='w3wp.exe'" | Select-Object Name, ProcessId, @{n='AppPool';e={$_.GetOwner().user}}


17、查看和设置回收;

Get-ItemProperty -Path IIS:\AppPools\DefaultAppPool –Name recycling.periodicRestart.timeSet-ItemProperty -Path IIS:\AppPools\DefaultAppPool -Name recycling.periodicRestart.time -Value 3.00:00:00Get-ItemProperty -Path IIS:\AppPools\DefaultAppPool -Name recycling.PeriodicRestart.schedule.collectionClear-ItemProperty -Path IIS:\AppPools\DefaultAppPool -Name recycling.PeriodicRestart.schedule.collectionSet-ItemProperty -Path IIS:\AppPools\DefaultAppPool -Name recycling.PeriodicRestart.schedule.collection -Value @{value='06:00:00'}
18、查看WAS来源的系统日志,可以看到管理员手动回收了应用程序池;


总结:应用程序池主要用来隔离不同的应用,在应用出现故障时,可以通过回收进程恢复应用,也可以根据应用程序的特点设置自动回收。

1 0