灰儿 发表于 2012-4-5 14:55:36

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

WEB环境: Windows Server 2008 R2+IIS7.5+fastCGI+PHP+mysql

IIS7.5中的某个网站每过一段时间后就打不开,打开首页出现503错误,页面提示如下:
Service Unavailable
--------------------------------------------------------------------------------
HTTP Error 503. The service is unavailable.
查看服务器对应网站的应用程序池已经停止,再查看windows日志,发现在此时间段内应用程序日志和系统日志中春现一些错误日志和很多警告日志。

其中应用程序中的错误日志如下:

日志名称:          Application
来源:            Application Error
日期:            2012/4/5 9:06:31
事件 ID:         1000
任务类别:          (100)
级别:            错误
关键字:         经典
用户:            暂缺
计算机:         WIN-it0527
描述:
错误应用程序名称: w3wp.exe,版本: 7.5.7600.16385,时间戳: 0x4a5bd0eb
错误模块名称: ntdll.dll,版本: 6.1.7600.16385,时间戳: 0x4a5be02b
异常代码: 0xc0000374
错误偏移量: 0x00000000000c6cd2
错误进程 ID: 0x1598
错误应用程序启动时间: 0x01cd12c53cf707df
错误应用程序路径: c:\windows\system32\inetsrv\w3wp.exe
错误模块路径: C:\Windows\SYSTEM32\ntdll.dll
报告 ID: 94266b36-7ebb-11e1-ac3b-782bcb5ff6b3
事件 Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
    <Provider Name="Application Error" />
    <EventID Qualifiers="0">1000</EventID>
    <Level>2</Level>
    <Task>100</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2012-04-05T01:06:31.000000000Z" />
    <EventRecordID>7201</EventRecordID>
    <Channel>Application</Channel>
    <Computer>WIN-it0527</Computer>
    <Security />
</System>
<EventData>
    <Data>w3wp.exe</Data>
    <Data>7.5.7600.16385</Data>
    <Data>4a5bd0eb</Data>
    <Data>ntdll.dll</Data>
    <Data>6.1.7600.16385</Data>
    <Data>4a5be02b</Data>
    <Data>c0000374</Data>
    <Data>00000000000c6cd2</Data>
    <Data>1598</Data>
    <Data>01cd12c53cf707df</Data>
    <Data>c:\windows\system32\inetsrv\w3wp.exe</Data>
    <Data>C:\Windows\SYSTEM32\ntdll.dll</Data>
    <Data>94266b36-7ebb-11e1-ac3b-782bcb5ff6b3</Data>
</EventData>
</Event>
其中系统日志中此时间段内错误日志如下:

日志名称:          System
来源:            Microsoft-Windows-WAS
日期:            2012/4/5 9:07:19
事件 ID:         5002
任务类别:          无
级别:            错误
关键字:         经典
用户:            暂缺
计算机:         WIN-it0527
描述:
应用程序池“www.it0527.com”将被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误。
事件 Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
    <Provider Name="Microsoft-Windows-WAS" Guid="{524B5D04-133C-4A62-8362-64E8EDB9CE40}" EventSourceName="WAS" />
    <EventID Qualifiers="49152">5002</EventID>
    <Version>0</Version>
    <Level>2</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2012-04-05T01:07:19.000000000Z" />
    <EventRecordID>68359</EventRecordID>
    <Correlation />
    <Execution ProcessID="0" ThreadID="0" />
    <Channel>System</Channel>
    <Computer>WIN-it0527</Computer>
    <Security />
</System>
<EventData>
    <Data Name="AppPoolID">www.it0527.com</Data>
    <Binary>
    </Binary>
</EventData>
</Event>
警告日志如下:
日志名称:          System
来源:            Microsoft-Windows-WAS
日期:            2012/4/5 9:07:19
事件 ID:         5009
任务类别:          无
级别:            警告
关键字:         经典
用户:            暂缺
计算机:         WIN-it0527
描述:
为应用程序池“www.it0527.com”提供服务的进程意外终止。进程 ID 是“3584”。进程退出代码是“0xff”。
事件 Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
    <Provider Name="Microsoft-Windows-WAS" Guid="{524B5D04-133C-4A62-8362-64E8EDB9CE40}" EventSourceName="WAS" />
    <EventID Qualifiers="32768">5009</EventID>
    <Version>0</Version>
    <Level>3</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2012-04-05T01:07:19.000000000Z" />
    <EventRecordID>68358</EventRecordID>
    <Correlation />
    <Execution ProcessID="0" ThreadID="0" />
    <Channel>System</Channel>
    <Computer>WIN-it0527</Computer>
    <Security />
</System>
<EventData>
    <Data Name="AppPoolID">www.it0527.com</Data>
    <Data Name="ProcessID">3584</Data>
    <Data Name="ExitCode">ff</Data>
</EventData>
</Event>
说明:Windows Process Activation Service (WAS)

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

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





灰儿 发表于 2020-3-31 13:49:22

https://www.jb51.net/article/72447.htmIIS6.0 IIS7.5应用程序池自动停止的解决方法


https://blog.csdn.net/hzfw2008/article/details/80322418   从 IIS 7.5应用程序池自动停止处理说起
页: [1]
查看完整版本: iis7.5应用程序池自动停止