简体   繁体   中英

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() .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM