我遇到了一个我正在创建的应用程序的问题。我试图通过我的C#应用程序启动一个Windows服务。当我点击我的开始按钮时,它看起来像一切都经过,但是当我登录到服务器时,该服务仍然不显示它正在运行。但是,第二次运行它时,我收到一个异常,表示服务的实例已在运行。再次登录到服务器时,服务似乎停止。有没有人见过这个?以编程方式启动Windows服务
这是我的代码。
try
{
while (reader.Read())
{
int timeoutMilliseconds = 1000;
string serviceName = reader["ServiceName"].ToString();
string permission = reader["Permission"].ToString();
if (permission == "E")
{
lblServStartSuccess.Visible = true;
ServiceController service = new ServiceController(serviceName);
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
}
else
{
lblServErrorStart.Visible = true;
}
}
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
编辑:这是我的一个服务接收到异常:
System.InvalidOperationException:服务逻辑磁盘管理器管理服务没有在计算机发现“”。 ---> System.ComponentModel.Win32Exception:指定的服务不存在作为已安装的服务---内部异常堆栈跟踪结束---
我知道服务存在。我需要在服务前添加什么东西来告诉它要查看哪个服务器?
你确定服务没有卡在起始状态?我记得服务控制面板对于显示(至少是某些windows版本以前)并不是很出色( – Rup
)“当我登录到服务器时”意味着什么 - 您是否试图在不同的机器上使用SCM? – BrokenGlass
是的,我正在从远程服务器运行Web服务。我正在使用具有管理员权限的帐户。我不确定它是否卡住。我的超时时间是否会太短而超时? – Matt