0

我有启动和停止服务代码

开始:

ServiceController service = new ServiceController("MyService");
service.Start();
var timeout = new TimeSpan(0, 0, 5); // 5seconds
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
btnTxt = "Stop Service";

停止:

ServiceController service = new ServiceController("MyService");
service.Stop();
var timeout = new TimeSpan(0, 0, 5); // 5seconds
service.WaitForStatus(ServiceControllerStatus.Stopped, timeout);
btnTxt = "Start Service";

当我直接在我的 Windows 窗体应用程序中使用此代码并以管理员身份运行 visula studio 时,它工作正常。但是现在我已经创建了一个类库,并从 Form 中的类库中调用了该方法。cs 文件。所以现在它给出了一个例外,“无法在计算机上启动服务 Myservice '。'。任何人都可以帮忙解决可能的问题吗??类库中的所有其他方法都可以正常工作。

4

2 回答 2

0

服务将无权“与桌面交互”,Form.cs 将引用需要此权限的库,因此服务将无法启动。

目前这里这里有一个非常有用的解决方案,它将在调试器中将您的服务作为控制台应用程序运行,或者作为“适当的”服务运行。

于 2013-03-22T11:45:10.707 回答
0

修改你的代码至少做一些日志:

你能添加一个 try catch 来获取异常吗

try{

// your code
}
catch (Exception ex)
{
    System.Diagnostics.Trace.WriteLine(ex.ToString());
}

并在此处粘贴 ex.message

于 2013-03-22T11:45:40.450 回答