用 C# 启动服务

Posted

技术标签:

【中文标题】用 C# 启动服务【英文标题】:Start Service with C # 【发布时间】:2011-10-21 14:44:48 【问题描述】:

我正在尝试使,但出现以下错误:

ServiceController service = new ServiceController(sServiceName);
service.MachineName = localComputerName;
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running);

System.InvalidOperationException:无法在计算机上打开服务 System.ComponentModel.Win32Exception:访问被拒绝 System.ServiceProcess.ServiceController.GetServiceHandle(Int32 requiredAccess) 在 System.ServiceProcess.ServiceController.Stop()

【问题讨论】:

【参考方案1】:

寻找您的权限。请问您需要从管理员帐户运行您的应用程序(或 Visual Studio)。

【讨论】:

【参考方案2】:

您的Access is denied 错误向我表明,您的进程/应用程序正在运行的身份没有启动和停止服务的权限。

【讨论】:

那怎么设置权限呢?【参考方案3】:

您是否已将异常文本变红?您根本没有启动服务器的权限。阅读:http://msdn.microsoft.com/en-us/library/h846e9b3.aspx(特别是http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontrollerpermission.aspx)或以管理员身份启动应用程序

【讨论】:

【参考方案4】:

在启动服务时,您可能需要查看 this question 以获得有关权限的一些帮助。

【讨论】:

以上是关于用 C# 启动服务的主要内容,如果未能解决你的问题,请参考以下文章

C#:如何以编程方式检查 Web 服务是不是已启动并正在运行?

C# 无法创建将启动的 Windows 服务

c#如何获取其他应用程序的启动参数

如何从 Windows 服务 C# 取消关机

C#实现程序开机启动

C#中的多线程启动画面?