hglo 发表于 2015-11-14 15:49:02

iis7.5应用程序池自动停止

环境: Windows Server 2008 R2, IIS7.5,PHP,mysql

过一段时间后,IIS7.5中的某个网站不能访问,查看相关应用程序池已经停止,再查看相关系统日志,发现一个警告日志,信息如下:

日志名称:          System
来源:            Microsoft-Windows-WAS
日期:            2012/4/5 10:28:50
事件 ID:         5009
任务类别:          无
级别:            警告
关键字:         经典
用户:            暂缺
计算机:         WIN-it0527
描述:
为应用程序池“www.it0527.com”提供服务的进程意外终止。进程ID 是“4420”。进程退出代码是“0xff”。
事件 Xml:
<Event xmlns=&quot;http://schemas.microsoft.com/win/2004/08/events/event&quot;>
<System>
    <Provider Name=&quot;Microsoft-Windows-WAS&quot; Guid=&quot;{524B5D04-133C-4A62-8362-64E8EDB9CE40}&quot; EventSourceName=&quot;WAS&quot; />
    <EventID Qualifiers=&quot;32768&quot;>5009</EventID>
    <Version>0</Version>
    <Level>3</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime=&quot;2012-04-05T02:28:50.000000000Z&quot; />
    <EventRecordID>68377</EventRecordID>
    <Correlation />
    <Execution ProcessID=&quot;0&quot; ThreadID=&quot;0&quot; />
    <Channel>System</Channel>
    <Computer>WIN-it0527</Computer>
    <Security />
</System>
<EventData>
    <Data Name=&quot;AppPoolID&quot;>www.it0527.com</Data>
    <Data Name=&quot;ProcessID&quot;>4420</Data>
    <Data Name=&quot;ExitCode&quot;>ff</Data>
</EventData>
</Event>

说明:Windows Process Activation Service (WAS)

解决思路及方法:
一、检查自己的code
分析原因,查看自己的代码是否有死循环;是否使用了非托管的代码,而没有释放资源(例如引用c/c&#43;&#43; DLL);是否程序中没有正常的捕获处理异常等。还是好好检查自己的代码吧。

二、网上很多解决方法,说是连接数超过限制,新系统且本地测试用,所以不存在iis线程过高,找到一个方法奏效,给NETWORK SERVICE 加上访问iis服务的权限,具体方法如下:
点击“开始”-“控制面板”-“管理工具”-“组件服务”-“计算机”-“我的电脑”-“DCOM”选项,
选择其下的“IISADMIN SERVICE”,右健选择“属性”,找到“安全”,在“启动和激活权限”中编辑“自定义”,添加帐号“NETWORKSERVICE ”,
给该帐号赋予“本地启动”和“本地激活”的权限,重新启动IIS
(“开始”-“运行”-“CMD”,点确定,然后运行IISRESET),
之后再访问同一站点,则一切正常。
页: [1]
查看完整版本: iis7.5应用程序池自动停止