gpt4 book ai didi

c# - 如果 Windows 服务停止,给我发电子邮件

转载 作者:可可西里 更新时间:2023-11-01 14:45:48 26 4
gpt4 key购买 nike

我希望能够检查某个服务是否正在运行(假设它有一个显示名称 - ServiceA)。我希望我的程序每 5 分钟检查一次服务是否仍在运行。如果没问题,它将循环并等待 5 分钟,然后再次检查。如果它发现 ServiceA 已停止,我希望程序给我发电子邮件并说...ServiceA 已停止运行。下面是我到目前为止完成的代码,它能够将所有当前正在运行的服务和实际显示名称拉回到控制台。有人对我上面需要的代码/逻辑有任何想法吗?

namespace ServicesChecker
{
class Program
{
static void Main(string[] args)
{
ServiceController[] scServices;
scServices = ServiceController.GetServices();

Console.WriteLine("Services running on the local computer:");
foreach (ServiceController scTemp in scServices)
{
if (scTemp.Status == ServiceControllerStatus.Running)
{
Console.WriteLine();
Console.WriteLine(" Service : {0}", scTemp.ServiceName);
Console.WriteLine(" Display name: {0}", scTemp.DisplayName);
}
}
//Create a Pause....
Console.ReadLine();
}
}
}

最佳答案

将每个服务的名称放在一个数组中并检查您想要的名称是否正在运行

List<string> arr = new List<string>();    
foreach (ServiceController scTemp in scServices)
{
if (scTemp.Status == ServiceControllerStatus.Running)
{
arr.add(scTemp.ServiceName);
}
}
if (arr.Contains("YourWantedName")
{
// loop again
}
else
{
// send mail
}

关于c# - 如果 Windows 服务停止,给我发电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8586705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com