以编程方式停止Windows服务c#抛出异常

时间:2015-04-16 11:28:15

标签: c# windows windows-services

我有一个Windows服务,应该在某个特定日期之后停止。 我可以使用以下方式以编程方式停止服务:

try
{
    ServiceController service = new ServiceController(servicename);
        //or
    //ServiceController service = new ServiceController(servicename,computer name);
    service.Stop();
}
catch(Exception ex)
{
}
finally
{
ServiceController service = new ServiceController(servicename);
service.Stop();
}

但是如果我们删除了finally部分,它会引发异常并且不会停止。

它在我使用finally语句后才停止,但显然异常仍然存在。 异常消息: 无法打开"服务名称"在计算机上提供服务'

详细例外: 无法在计算机上打开服务控制管理器'计算机名称'。此操作可能需要其他权限。

我确实参考了但它没有帮助它也没有解决我的问题: Stackoverflow Question

如何在没有此异常的情况下以编程方式停止服务

2 个答案:

答案 0 :(得分:2)

右键单击该程序,然后选择“以管理员身份运行”。如果您正在调试它,请确保使用“以管理员身份运行”打开IDE(即我认为的Visual Studio)。

答案 1 :(得分:0)

当我遇到这个问题时,我去了有问题的机器,并尝试通过界面手动停止服务,并收到此弹出窗口: enter image description here

我能够通过在任务管理器中找到任务并结束该任务来停止服务。不知道究竟是什么挂断了服务,但是如果您有权访问机器和任务管理器,则可以正常工作。

我能够在没有任何问题的情况下启动该服务并使用ServiceController代码。