我的Windows服务在某些情况下无法启动。当它无法启动事件序列时,表明我的服务中的.NET代码可能已运行,但没有出现事件日志消息。
当服务正常启动时,会显示事件日志消息。
事件日志如何工作? Windows服务管理器如何工作?
如果服务超时(发生的情况)是否可能会破坏与该服务相关的事件日志消息?
如果服务超时这意味着它根本调用了我的.NET代码?我的启动方法调用后台线程,所以我不明白为什么服务会超时。
真的没有加起来。
答案 0 :(得分:3)
事件日志需要显式记录操作。您从启动和关闭中看到的是由操作系统的服务控制管理器创建的。要获得超出该范围的任何日志记录,您需要明确使用System.Diagnostics.EventLog类。
编辑:如果您这样做,但仍然看不到消息,则表示日志操作未执行,或者失败,可能是Win32Exception。
答案 1 :(得分:2)
这实际上取决于您的代码在做什么。为什么不使用Debugger.Launch()
对其进行调试,或者将起始代码包装在try
... catch
中以捕获错误消息。服务不太可能记录在事件日志中......这是开发人员的工作:)