如何在OnStart方法中停止服务?

时间:2009-05-20 11:49:59

标签: .net windows-services .net-2.0 service

我正在.net 2.0中编写Windows服务。

如果由于某种原因我不希望我的服务启动,我应该在OnStart()方法中做什么?我可以简单地调用基类的Stop()方法(ServiceBase)吗?我已经尝试过了,并且获得了一些有趣的内存访问异常。是否需要启动一个单独的线程来调用Stop()方法?

3 个答案:

答案 0 :(得分:8)

你为什么要这样做?如果出现错误,请将其记录在事件日志中并抛出异常。您的服务将无法启动,用户将被告知发生了不良事件。

答案 1 :(得分:0)

使用ServiceController并通过它停止然后立即返回。

答案 2 :(得分:0)

您可以使用Environment.FailFast()。请注意,它会忽略任何try-catch-finally块。