Dan*_*ang 13 c# stack-overflow debugging clr windows-services
我有一个Windows服务,每隔一分钟做一些密集的工作(实际上它每次启动一个新的线程,它通过http同步到不同的系统).问题是,几天后突然停止,没有错误信息.
我有NLog,我已注册'AppDomain.CurrentDomain.UnhandledException'.textfile-log中的最后一个条目只是一个正常的条目,没有任何问题.查看EventLog,我也无法在应用程序日志中找到任何消息,但是,系统日志中有两个条目.
一个人基本上说服务意外终止了.而已.第二个事件(与第一个事件同时)说:"......无法创建堆栈的新保护页面......"
从我读过的内容来看,这可能是堆栈溢出异常.我没有解析任何XML而且我不做递归工作.我使用Gate,Nancy和SignalR托管一个Web服务器,并使RavenDB以嵌入模式运行.每分钟都使用.NET 4.0中的Taskfactory启动一个新任务,我还有一个ContinueWith,我重新启动System.Timers.Timer,在一分钟内再次启动.
我该如何开始调查此问题?可能出现这种错误的原因是什么?
Bry*_*sby 15
根据您提供的信息,我至少应该至少执行以下操作:
AppDomain.CurrentDomain.UnhandledException无法帮助您 - StackOverflowException成为其中之一.我相信CLR只会在这种情况下给你一个字符串而不是堆栈跟踪.一个经常被忽视的例子StackOverflowException是:
private string myString;
public string MyString { get { return MyString; } } //should be myString
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58403 次 |
| 最近记录: |