【发布时间】:2014-02-27 13:44:25
【问题描述】:
我已经创建了一个 Windows 服务并将其安装在我的系统上。现在,根据我的要求,我必须使用 Windows 窗体应用程序中的按钮单击来启动和停止此 Windows 服务。 这是我的代码..
public partial class Form1 : Form
{
string svcStatus;
ServiceController myService;
public Form1()
{
InitializeComponent();
myService = new ServiceController();
myService.ServiceName = "ServiceName";
svcStatus = myService.Status.ToString();
}
private void button1_Click(object sender, EventArgs e)
{
if (svcStatus == "Stopped")
{
myService.Start(); // START the service if it is already Stopped
string svcStatusWas = "";
while (svcStatus != "Running")
{
if (svcStatus != svcStatusWas)
{
Console.WriteLine("Status: " + svcStatus);
}
svcStatusWas = svcStatus;
myService.Refresh();
svcStatus = myService.Status.ToString();
}
Console.WriteLine("Service Started!!");
}
}
private void button2_Click(object sender, EventArgs e)
{
if (svcStatus == "Running")
{
myService.Stop(); // STOP the service if it is already Running
string svcStatusWas = "";
while (svcStatus != "Stopped")
{
svcStatusWas = svcStatus;
myService.Refresh();
svcStatus = myService.Status.ToString();
}
Console.WriteLine("Service Stopped!!");
}
}
}
}
我收到错误“无法在计算机 '.' 上打开 Servicename 服务。”在这一行 myService.Start();
请帮帮我。
【问题讨论】:
-
你尝试启动的服务真的叫“ServiceName”吗?
-
机器上是否存在服务?您确定您使用的是服务名称,而不是服务可执行文件的文件名吗?
-
您是否有权在您运行的用户下启动/停止服务?
标签: c# winforms windows-services