重新启动Windows服务在C# [英] Restart Windows Service in c#
本文介绍了重新启动Windows服务在C#的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我得到一个链接从SO 无法重新启动服务C#重新启动Windows服务。
I got a link from SO cannot restart a Service C# where it says to restart the windows service.
就应该重新启动该服务的方法是在这个问题提到
The way it should restart the service is mentioned in the question as
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);
}
}
但我不知道在这里,到哪里写code。我需要尽快重新启动Windows服务作为一个从我的应用程序安装
But i am not sure here, as to where to write the code. I need to restart the windows service as soon as that is installed from my application
让我知道是否需要任何输入。
Let me know if any input is needed.
谢谢!
推荐答案
我简单地使用网络启动
和净停止
重新启动服务。例如:
I simply use net start
and net stop
to restart services. Example:
using System.Diagnostics;
public static void RestartService(string serviceName)
{
var psi = new ProcessStartInfo("net.exe", "stop " + serviceName);
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.UseShellExecute = true;
psi.WorkingDirectory = Environment.SystemDirectory;
var st = Process.Start(psi);
st.WaitForExit();
psi = new ProcessStartInfo("net.exe", "start " + serviceName);
psi.UseShellExecute = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.WorkingDirectory = Environment.SystemDirectory;
st = Process.Start(psi);
st.WaitForExit();
}
这篇关于重新启动Windows服务在C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文