在 Windows 7 的事件查看器中,有一个由我的 Windows 服务应用程序设置的来源列。该值设置为服务条款通常当日志条目与我的应用程序关联时,它服务条款作为源列值。
但是,当服务启动失败(或者发生其他类型的错误)时,我会得到以下值之一的源:
- 应用程序错误
- 服务控制管理器
- .NET 运行时
我不明白为什么价值并不总是服务条款 另外,是否可以强制它每次都使用 TOS?
答案1
服务遇到致命错误,无法启动。.Net 框架捕获了该异常,服务控制管理器当然知道该进程未启动。开发人员需要正确处理退出代码,以便将此致命错误作为应用程序源记录到事件查看器中。
这篇文章解释得很好: http://www.devopsonwindows.com/handle-windows-service-errors/