C# Windows service self terminate service

后端 未结 1 1970
天涯浪人
天涯浪人 2021-01-12 08:22

How do you have a service self terminate?

Environment.Exit will cause the app to start but the service stays running.

Any idea?

相关标签:
1条回答
  • 2021-01-12 09:19

    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 讨论(0)
提交回复
热议问题