我是一个初学者,试图开发一种Windows服务,该服务在保险单有效期之前发送电子邮件。我将服务设置为自动启动,但它似乎没有自动启动(在“服务”控制台上看到)。当我手动启动它时,它确实发送了警报,但由于错误1064而停止,错误1064在检查事件查看器后是由已经运行的服务的其他实例引起的。但是,如果我不尝试手动启动该服务,则不会发送警报。
我尝试使用installutil卸载服务并重新安装它,以确保只有一个实例在运行。
//According to event viewer this is the block of code where the issue occurs.
ServiceController[] services = ServiceController.GetServices();
// Iterating each service to check that if a service named
// EmailExpiracaoSeguroAuto is found then check that its status whether
// it is running or stopped. If found running then it will
// stop that service; else it starts that service
foreach (ServiceController x in services)
{
if (x.DisplayName == "EmailExpiracaoSeguroAuto")
{
if (x.Status == System.ServiceProcess.ServiceControllerStatus.Running)
{
x.Stop();
}
else
{
//More precisely HERE
x.Start();
}
}
}
}
我希望能够克服此错误,使服务自动启动并保持运行。