我需要我的服务来检查某些文件在其启动过程中是否存在以及某些文件的结构,如果没有满足某些条件,请退出/失败/停止。 我看了这个帖子:What is the proper way for a Windows service to fail? 但它没有帮助。Windows服务在启动过程中失败的正确方法是什么
我将ServiceBase.ExitCode属性设置为非零值,然后调用ServiceBase.Stop。但我得到5个事件日志条目。如下所示:
Starting service. (I log this event via code)
Config.xml file not found. (I log this ERROR event via code)
Service stopped successfully. (SCM logs this message)
Service started successfully. (SCM logs this message)
Service cannot be started. The handle is invalid (SCM logs this message)
正如您所看到的一切都很好,除了最后两个条目。他们为什么在那里?如何在启动过程中正确关闭服务?为什么SCM没有将服务视为停止/失败?
我发现扔的不是调用停止()防止被调用的调用OnStop事件例外,我怀疑赢记录你所看到的“已成功停止”的信息。到目前为止我唯一能找到的似乎是可能的退出代码列表是http://www.hiteksoftware.com/mize/Knowledge/articles/049.htm。如果我使用不在列表中的退出代码,则会收到类似[“Error 10501:0x2905”](http://i.imgur.com/UohWLVr.png)(x2905 =十进制值10501)的消息。关于退出代码是否没有MSDN文档,或者有关如何向用户发出如何调试问题的指导? – gregmac 2013-07-19 19:36:07