Windows服务未记录到事件日志

时间:2009-09-24 22:44:02

标签: c# .net windows-services

我的Windows服务在某些情况下无法启动。当它无法启动事件序列时,表明我的服务中的.NET代码可能已运行,但没有出现事件日志消息。

当服务正常启动时,会显示事件日志消息。

事件日志如何工作? Windows服务管理器如何工作?

如果服务超时(发生的情况)是否可能会破坏与该服务相关的事件日志消息?

如果服务超时这意味着它根本调用了我的.NET代码?我的启动方法调用后台线程,所以我不明白为什么服务会超时。

真的没有加起来。

2 个答案:

答案 0 :(得分:3)

事件日志需要显式记录操作。您从启动和关闭中看到的是由操作系统的服务控制管理器创建的。要获得超出该范围的任何日志记录,您需要明确使用System.Diagnostics.EventLog类。

编辑:如果您这样做,但仍然看不到消息,则表示日志操作未执行,或者失败,可能是Win32Exception。

答案 1 :(得分:2)

这实际上取决于您的代码在做什么。为什么不使用Debugger.Launch()对其进行调试,或者将起始代码包装在try ... catch中以捕获错误消息。服务不太可能记录在事件日志中......这是开发人员的工作:)