【问题标题】:Calling Environment.Exit in a windows service在 Windows 服务中调用 Environment.Exit
【发布时间】:2013-10-10 18:16:32
【问题描述】:

从 Windows 服务中调用 Environment.Exit 是否会使 SCM 调用服务的 onStop() 方法,或者这种行为是不可预测的?

我有几个具有此代码的 Windows 服务。不幸的是,我无法消除这种行为。但我需要知道是否会调用 onStop() 来决定是在该方法中还是在调用 Environment.Exit 的方法中放置一些常见的停止代码。

【问题讨论】:

标签: c# service exit


【解决方案1】:

Enviroment.Exit 将关闭被服务包裹的进程。

因此,调用它,不会调用onStop()方法。

您可以自己调用该方法,而不是调用Exit

您可以使用以下代码调用SCM stop

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

【讨论】:

  • 感谢您的快速回答!所以这种行为总是正确的?
  • 这就是您要查找的内容:stackoverflow.com/a/554292/1361084 Jon Skeets 对@CodeCaster 发布的评论的回答。
  • 嗨@Ofiris 我刚刚遇到这个线程。只是想知道我们可以使用 ServiceController 类从任何 win 服务本身的例程中停止 winservice 吗?还是我需要单独的应用程序来停止我的服务?请指导。谢谢
  • 如果我没听错的话,可以调用ServiceController类的Stop方法。见:stackoverflow.com/questions/554276/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多