【发布时间】:2011-02-10 18:56:06
【问题描述】:
在 VS2008 中,如何检查 Windows 服务是否在启动条件下运行?
【问题讨论】:
标签: c# .net visual-studio-2008 windows-installer launch-condition
在 VS2008 中,如何检查 Windows 服务是否在启动条件下运行?
【问题讨论】:
标签: c# .net visual-studio-2008 windows-installer launch-condition
有关如何检查服务是否在启动条件下运行的详细信息,请参阅this 线程,
最可靠的自定义操作是在 UI 和执行序列中的 LaunchConditions 操作。
这里有一个例子:
http://support.microsoft.com/default.aspx?scid=kb;en-us;253683.
您的自定义操作代码可以检查正在运行的服务并设置属性 对于启动条件。
您可以使用ServiceController.GetServices 方法列出本地计算机上运行的服务。
ServiceController[] scServices;
scServices = ServiceController.GetServices();
// Display the list of services currently running on this computer.
Console.WriteLine("Services running on the local computer:");
foreach (ServiceController scTemp in scServices)
{
if (scTemp.Status == ServiceControllerStatus.Running)
{
// Write the service name and the display name
// for each running service.
Console.WriteLine();
Console.WriteLine(" Service : {0}", scTemp.ServiceName);
Console.WriteLine(" Display name: {0}", scTemp.DisplayName);
}
}
【讨论】:
您可以按如下方式连接到服务:
ServiceController sc = new ServiceController("ServiceName");
您可以通过检查“状态”属性来检查服务是否正在运行。 Status 返回一个 ServiceControllerStatus 类型的值(枚举)。
【讨论】: