2017-06-02 109 views
1

我有一个Web服务在VM-Hypervisor中的Windows Server 2016实例上的IIS-10上运行。单独的计划任务在非高峰时间调用该Web服务的功能,以便从第三方系统检索状态更新。计划任务将需要将状态拉入小批次的项目中断,并调用通过任务并行检索/更新记录的函数,并在所有任务完成后返回。WCF服务硬崩溃Windows 2016

有时(每第三次?),在此计划任务期间,服务正在运行的应用程序池将挂起。 Log4Net停止记录,对服务的请求不会得到响应,对服务的IIS记录不会随请求更新。在我的日志或Windows事件日志中没有记录错误。发生这种情况时,应用程序池将无限期地保持在此状态。如果我回收运行服务的应用程序池,服务将正常响应约30秒,然后服务器将执行硬重启。

在重新启动后的事件日志显示下面的错误:

The computer has rebooted from a bugcheck. The bugcheck was: 0x00000139 (0x0000000000000003, 0xffffd60019506680, 0xffffd600195065d8, 0x0000000000000000).

所生成的dmp文件示出了相同的错误代码,并识别该文件作为NTOSKRNL.EXE。

所有的驱动程序都是最新的。我已确保所有任务和请求都有超时。我已经增加了服务器资源,超过了可能是原因的地步。我调整了正在处理的物品的批量大小。

我没有排除故障的想法,并希望得到任何帮助。

+0

'0x139' [[KERNEL_SECURITY_CHECK_FAILURE]](https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/bug-check---bug-check-0x139-kernel-security -check-failure),第一个参数表示这是由于'LIST_ENTRY'损坏引起的。换句话说:你有一个包含错误的驱动程序,不管它是否是最新的。 (“ntoskrnl.exe”就是检测到问题的地方,很可能不是实际发生故障的代码所在的地方。) –

+1

如果不进入完整的内核调试教程,可以安装[windbg](https://docs.microsoft .com/en-us/windows-hardware/drivers/debugger/index),加载转储文件('windbg -z')并快速执行'!analyze -v'来查看它是否可以查明驱动程序。当然,由于这是一个虚拟机,虚拟机管理程序本身也有可能发生故障(虚拟硬件被“破坏”),并且分析不会产生任何用处(因为您无法控制驱动程序)。但这就是你有Microsoft支持。 –

+0

更正以上内容:这就是你有VMWare支持。如果不涉及Hyper-V,微软将不会处理有关虚拟硬件故障的支持凭单,因为第三方虚拟化层可能会被指责。 –

回答

1

我想我会在这种情况下关闭它,以防其他人有这个特殊问题。

通过转储进行挖掘,BHDRVX64.SYS(赛门铁克防病毒软件)在崩溃之前立即进入堆栈。

4天后,赛门铁克推出更新https://support.symantec.com/en_US/article.INFO4367.html,并解决了该问题。

**如果您遇到类似问题,请先卸载防病毒软件并查看问题是否仍然存在。之后,在admin命令提示符下处理'fltmc'命令返回的内核级进程列表。