【发布时间】:2011-04-06 06:19:15
【问题描述】:
我从 SO Cannot restart a Service 获得了一个链接,上面说要重新启动 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,请从 Installer 派生一个类。如果您手动安装,请在安装代码之后立即调用 RestartService。但是,RestartService 是从您的应用程序内部调用的。
-
@sprinter252:当我安装我的 Windows(桌面)应用程序时,该服务安装在 services.msc 中。之后,我希望重新启动一次。该怎么做?
-
安装后为什么不使用net start。
-
@James:不知道你说的“网”是什么意思?
-
net start 可以从命令行调用,我假设你安装了服务?
标签: c# asp.net visual-studio windows-services