我正在.net 2.0中编写Windows服务。
如果由于某种原因我不希望我的服务启动,我应该在OnStart()
方法中做什么?我可以简单地调用基类的Stop()
方法(ServiceBase
)吗?我已经尝试过了,并且获得了一些有趣的内存访问异常。是否需要启动一个单独的线程来调用Stop()
方法?
答案 0 :(得分:8)
你为什么要这样做?如果出现错误,请将其记录在事件日志中并抛出异常。您的服务将无法启动,用户将被告知发生了不良事件。
答案 1 :(得分:0)
使用ServiceController并通过它停止然后立即返回。
答案 2 :(得分:0)
您可以使用Environment.FailFast()。请注意,它会忽略任何try-catch-finally块。