开发者

C# Windows service self terminate service

How do you have a service self terminate?

Environment.Exit will开发者_运维问答 cause the app to start but the service stays running.

Any idea?


You can use the SCM to shut down your service from within the service itself:

System.ServiceProcess.ServiceController svc = new System.ServiceProcess.ServiceController("NameOfYourService");
svc.Stop();

Edit:

The other option is to call ServiceBase.Stop() in your service - if you have access to your ServiceBase derived class instance that would be the cleaner way to go - in many cases it is cumbersome though having to pass this dependency around.

If you have an uncaught exception I personally would just let the service crash (or log it and then throw), which will leave a message in the event log detailing the termination reason. If you absolutely need to you can catch the Exception, and then call ServiceBase.Stop().

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜