【发布时间】:2012-06-28 08:47:25
【问题描述】:
我有一个 Windows 服务,它每分钟做一些密集的工作(实际上它每次都会启动一个新线程,通过 http 同步到不同的系统)。问题是,几天后它突然停止而没有错误消息。
我有 NLog 并且我已经注册了AppDomain.CurrentDomain.UnhandledException。文本文件日志中的最后一个条目只是一个正常条目,没有任何问题。查看EventLog,我在应用程序日志中也找不到任何消息,但是,系统日志中有两个条目。
一个基本上说服务已意外终止。而已。第二个事件(与第一个事件同时)说:“......无法为堆栈创建新的保护页面......”
根据我的阅读,这可能是堆栈溢出异常。我不解析任何 XML,也不做递归工作。我使用 Gate、Nancy 和 SignalR 托管一个网络服务器,并让 RavenDB 在嵌入式模式下运行。每分钟都会使用 .NET 4.0 中的 Taskfactory 启动一个新任务,并且我还有一个 ContinueWith,我在其中重新启动 System.Timers.Timer 以在一分钟内再次触发。
如何开始调查此问题?出现此类错误的可能原因是什么?
【问题讨论】:
-
是的,它是一个 SO。它不是托管代码,它以不同的方式报告异常。你有一堆不是你写的代码,都是可疑的。
标签: c# debugging windows-services clr stack-overflow