Windows服务不会停止/启动

xbo*_*nez 6 c#

我正在使用以下代码片段来停止服务.但是,这两个Console.Writeline语句都表明服务正在运行.为什么服务不会停止?

class Program
{
    static void Main(string[] args)
    {
        string serviceName = "DummyService";
        string username = ".\\Service_Test2";
        string password = "Password1";

        ServiceController sc = new ServiceController(serviceName);

        Console.WriteLine(sc.Status.ToString());

        if (sc.Status == ServiceControllerStatus.Running)
        {
            sc.Stop();
        }

        Console.WriteLine(sc.Status.ToString());
    }
}
Run Code Online (Sandbox Code Playgroud)

Pie*_*kel 6

您需要调用sc.Refresh()以刷新状态.有关更多信息,请参阅http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontroller.stop.aspx.

此外,服务可能需要一些时间才能停止.如果方法立即返回,将关闭更改为以下内容可能很有用:

// Maximum of 30 seconds.

for (int i = 0; i < 30; i++)
{
    sc.Refresh();

    if (sc.Status.Equals(ServiceControllerStatus.Stopped))
        break;

    System.Threading.Thread.Sleep(1000);
}
Run Code Online (Sandbox Code Playgroud)