IIS经常在凌晨自动崩溃

cslp517 2019-04-12 10:06:01
平时不会出问题,但是每隔一周到一个月左右,IIS就会挂一次,每次都是在凌晨1点的到5点这个区间,事件查看器记录的日志如下:


日志名称: Application
来源: .NET Runtime
日期: 2019/4/12 4:26:10
事件 ID: 1023
任务类别: 无
级别: 错误
关键字: 经典
用户: 暂缺
计算机: xx
描述:
应用程序: w3wp.exe
Framework 版本: v4.0.30319
说明: 由于 .NET 运行时中出现内部错误,进程终止 位于 IP 00007FFCD0AF277B (00007FFCD0AC0000),退出代码为 80131506。

事件 Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name=".NET Runtime" />
<EventID Qualifiers="0">1023</EventID>
<Level>2</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2019-04-11T20:26:10.000000000Z" />
<EventRecordID>33366</EventRecordID>
<Channel>Application</Channel>
<Computer>xx</Computer>
<Security />
</System>
<EventData>
<Data>应用程序: w3wp.exe
Framework 版本: v4.0.30319
说明: 由于 .NET 运行时中出现内部错误,进程终止 位于 IP 00007FFCD0AF277B (00007FFCD0AC0000),退出代码为 80131506。
</Data>
</EventData>
</Event>




日志名称: Application
来源: Application Error
日期: 2019/4/12 4:26:10
事件 ID: 1000
任务类别: (100)
级别: 错误
关键字: 经典
用户: 暂缺
计算机: xx
描述:
错误应用程序名称: w3wp.exe,版本: 8.5.9600.16384,时间戳: 0x5215df96
错误模块名称: clr.dll,版本: 4.0.30319.36470,时间戳: 0x5b85da03
异常代码: 0xc0000005
错误偏移量: 0x000000000003277b
错误进程 ID: 0x1e6c
错误应用程序启动时间: 0x01d4f0a4ccb85c1b
错误应用程序路径: c:\windows\system32\inetsrv\w3wp.exe
错误模块路径: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
报告 ID: 0ae8f032-5c98-11e9-80e6-b3703bca7a12
错误程序包全名:
错误程序包相对应用程序 ID:
事件 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="2019-04-11T20:26:10.000000000Z" />
<EventRecordID>33367</EventRecordID>
<Channel>Application</Channel>
<Computer>xx</Computer>
<Security />
</System>
<EventData>
<Data>w3wp.exe</Data>
<Data>8.5.9600.16384</Data>
<Data>5215df96</Data>
<Data>clr.dll</Data>
<Data>4.0.30319.36470</Data>
<Data>5b85da03</Data>
<Data>c0000005</Data>
<Data>000000000003277b</Data>
<Data>1e6c</Data>
<Data>01d4f0a4ccb85c1b</Data>
<Data>c:\windows\system32\inetsrv\w3wp.exe</Data>
<Data>C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll</Data>
<Data>0ae8f032-5c98-11e9-80e6-b3703bca7a12</Data>
<Data>
</Data>
<Data>
</Data>
</EventData>
</Event>


另外,我抓取到了w3wp.exe.xxxx.dmp文件,但是调试的时候提示需要PDB文件,需要怎么处理?
...全文
687 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
奇迹蝴蝶 2019-04-15
  • 打赏
  • 举报
回复
你的服务器是不是很杂乱,还有别的apache什么的服务,然后冲突,IIS被干掉,以前我碰到这种情况。
正常的纯IIS服务器,即使堵塞了,IIS也不会被上方框。
  • 打赏
  • 举报
回复
这个是wp3的错误,应该还有另一个有异常内容的错误日志
cslp517 2019-04-12
  • 打赏
  • 举报
回复
引用 7 楼 娃都会打酱油了 的回复:
看那段时间的系统日志,应该是你的系统在那段时间内短时间有超过N次的未处理异常发生,IIS设置里有
引用 8 楼 正怒月神 的回复:
除了iis的日志,windows日志再看看。 系统你们有记录日志吗?
系统日志是这样的:

日志名称:          System
来源:            Microsoft-Windows-WAS
日期:            2019/4/12 4:26:20
事件 ID:         5011
任务类别:          无
级别:            警告
关键字:           经典
用户:            暂缺
计算机:           xx
描述:
为应用程序池“Service.Mobile”提供服务的进程在与 Windows Process Activation Service 通信时出现严重错误。该进程 ID 为“7788”。数据字段包含错误号。
事件 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">5011</EventID>
    <Version>0</Version>
    <Level>3</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2019-04-11T20:26:20.000000000Z" />
    <EventRecordID>982942</EventRecordID>
    <Correlation />
    <Execution ProcessID="0" ThreadID="0" />
    <Channel>System</Channel>
    <Computer>xx</Computer>
    <Security />
  </System>
  <EventData>
    <Data Name="AppPoolID">Service.Mobile</Data>
    <Data Name="ProcessID">7788</Data>
    <Binary>6D000780</Binary>
  </EventData>
</Event>

日志名称:          System
来源:            Microsoft-Windows-WAS
日期:            2019/4/12 4:27:39
事件 ID:         5002
任务类别:          无
级别:            错误
关键字:           经典
用户:            暂缺
计算机:           xx
描述:
应用程序池“Service.Mobile”将被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误。
事件 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="2019-04-11T20:27:39.000000000Z" />
    <EventRecordID>982949</EventRecordID>
    <Correlation />
    <Execution ProcessID="0" ThreadID="0" />
    <Channel>System</Channel>
    <Computer>xx</Computer>
    <Security />
  </System>
  <EventData>
    <Data Name="AppPoolID">Service.Mobile</Data>
    <Binary>
    </Binary>
  </EventData>
</Event>
cslp517 2019-04-12
  • 打赏
  • 举报
回复
引用 6 楼 以专业开发人员为伍 的回复:
[quote=引用 4 楼 cslp517 的回复:] [quote=引用 2 楼 以专业开发人员为伍 的回复:] 很正常,根本没有崩溃。
已经崩溃了,IIS已经用不了了,必须重启才行。[/quote] 把 IIS 搞的不能重启网站,那基本上就是你的 asp.net 程序中干了什么不该干的、并且是频繁定时的操作。[/quote] 主要它是在凌晨这个没有人用的时间点挂掉就比较奇怪,而且我代码里没有定时操作,我检查了一下,优点怀疑是这个方法引起的,不知道是不是HttpRuntime在释放过期对象的时候引起了崩溃。

        /// <summary>
        /// 设置当前应用程序指定CacheKey的Cache值
        /// </summary>
        /// <param name="cacheKey">缓存键</param>
        /// <param name="obj">要缓存的对象</param>
        /// <param name="ts">过期时间</param>
        public static void SetCache(string cacheKey, object obj,TimeSpan ts)
        {
            System.Web.Caching.Cache objCache = HttpRuntime.Cache;
            if (objCache[cacheKey] == null)
            {
                objCache.Insert(cacheKey, obj, null, DateTime.Now + ts, Cache.NoSlidingExpiration);
            }
            else
            {
                objCache[cacheKey] = obj;
            }
        }
正怒月神 版主 2019-04-12
  • 打赏
  • 举报
回复
除了iis的日志,windows日志再看看。 系统你们有记录日志吗?
  • 打赏
  • 举报
回复
看那段时间的系统日志,应该是你的系统在那段时间内短时间有超过N次的未处理异常发生,IIS设置里有
  • 打赏
  • 举报
回复
引用 4 楼 cslp517 的回复:
[quote=引用 2 楼 以专业开发人员为伍 的回复:] 很正常,根本没有崩溃。
已经崩溃了,IIS已经用不了了,必须重启才行。[/quote] 把 IIS 搞的不能重启网站,那基本上就是你的 asp.net 程序中干了什么不该干的、并且是频繁定时的操作。
  • 打赏
  • 举报
回复
其实进程停止后,只要有人访问网站,进程会自动重启。 所以有人在 asp.net 网站进程中弄什么“定时器”就是瞎掰了。这样你必须用一个 winform 或者 windows service 服务来不断(例如每隔30秒)访问一下自己的 asp.net 网站,当它进程停止后来唤醒它。更科学的说法,是使用桌面或者纯粹地 widnows 服务程序来处理定是操作,而不能使用 asp.net。
cslp517 2019-04-12
  • 打赏
  • 举报
回复
引用 2 楼 以专业开发人员为伍 的回复:
很正常,根本没有崩溃。
已经崩溃了,IIS已经用不了了,必须重启才行。
cslp517 2019-04-12
  • 打赏
  • 举报
回复
引用 1 楼 tangyanzhi1111 的回复:
都已经告诉你了 .net 运行时错误,w3wp.exe这个进程实质上是对应线程池实例的,线程池个数等于w3wp.exe启动个数。在IIS6下面这个进程自动回收垃圾需要设置,w3p会出现不能回收的情况。建议升级IIS或者设置定时清理IIS垃圾内存。
我先试下用定时清理IIS内存的方式。
  • 打赏
  • 举报
回复
很正常,根本没有崩溃。
江湖评谈 2019-04-12
  • 打赏
  • 举报
回复
都已经告诉你了 .net 运行时错误,w3wp.exe这个进程实质上是对应线程池实例的,线程池个数等于w3wp.exe启动个数。在IIS6下面这个进程自动回收垃圾需要设置,w3p会出现不能回收的情况。建议升级IIS或者设置定时清理IIS垃圾内存。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧