我遇到了一個我正在創建的應用程序的問題。我試圖通過我的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