1
我從SO Cannot restart a Service得到了一個鏈接,它說重新啓動windows服務。在c中重新啓動Windows服務#
應該重新啓動該服務的方式是在問題中提到的
public static void RestartService(string serviceName, int timeoutMilliseconds)
{
ServiceController service = new ServiceController(serviceName);
int millisec1 = Environment.TickCount;
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
if (!(service.Status.Equals(ServiceControllerStatus.Stopped) || service.Status.Equals(ServiceControllerStatus.StopPending)))
{
service.Stop();
service.WaitForStatus(ServiceControllerStatus.Stopped, timeout);
}
// count the rest of the timeout
int millisec2 = Environment.TickCount;
timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds - (millisec2 - millisec1));
if (!(service.Status.Equals(ServiceControllerStatus.Running) || service.Status.Equals(ServiceControllerStatus.StartPending)))
{
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
}
}
,但我不知道在這裏,到哪裏寫的代碼。我需要重新啓動Windows服務,只要從我的應用程序安裝該服務
讓我知道是否需要任何輸入。
謝謝!
你是什麼意思「從我的應用程序安裝」?如果您使用Windows Installer,則從安裝程序派生一個類。如果您手動安裝,請在安裝代碼後立即調用RestartService。但是,RestartService是從應用程序內部調用的。 – sprinter252 2011-04-06 06:47:07
@ sprinter252:當我安裝我的Windows(桌面)應用程序時,該服務被安裝在services.msc中。之後,我希望重新啓動一次。怎麼做? – 2011-04-06 06:48:51
安裝後爲什麼不使用net start? – 2011-04-06 07:01:09