如何从失败的Windows服务获取.NET异常消息和堆栈跟踪?

时间:2015-04-05 14:16:22

标签: c# .net debugging windows-services

我在C#/ .NET中编写了一个Windows服务,但到目前为止还没有启动。在OnStart方法中抛出了一个删除。

由于我还没有找到有关未处理的异常Windows事件日志的任何信息(除了一个不太有帮助的P4: System.Data),我正在寻找另一种简单的方法来获取堆栈跟踪和异常消息。

我知道,我可以尝试debug Windows服务,但由于它在timeout下运行的OnStart方法失败,调试并不好玩。此外,它需要以管理员身份启动VS。

或者我应该在try-catch中包装所有内容并在某处记录异常?如果是这样,在哪里?什么是最佳做法?

1 个答案:

答案 0 :(得分:2)

将代码的所有关键部分包装在单独的try / catch块中,将日志写入Windows事件日志,安装全局异常处理程序。将这些异常写入Windows事件日志。

即使它没有崩溃,你也应该在服务中完成所有这些。