无法在"服务"窗口中启动 Windows 服务



这是一个Windows服务的故事,它已经在多台服务器上运行了多年,但由于某种原因,它不再在一个特定的2012 Windows Server上启动。 它在此服务器上也运行良好,直到突然无法运行(2019年6月26日)。

它给出的错误消息是通用Error 1053: The service did not respond to the start or control request in a timely fashion。 这几乎可以意味着任何事情。 我遵循了其他SO问题的建议:

  • 我已将注册表中的ServicePipeTimeout设置为几分钟并重新启动了服务。 请注意,当我尝试在"服务"窗口中手动启动服务时,错误消息会立即出现,而不是在预期时间之后。
  • 我已经卸载并重新安装了该服务。
  • 我在入口点周围放置了一个尝试捕获,试图将任何异常记录到 EventLog 中。 没有这样的消息。 再次请注意,错误消息会立即出现。
  • 我已经检查了 Windows 更新,但没有看到与服务停止时匹配的更新。
  • 我已经检查了安装了哪个.Net Framework。 该服务是 4.6.1,而似乎安装了 4.7.1 之前和包含的所有内容。
  • 我已尝试将登录凭据切换为管理员用户。
  • 我尝试按照此处所述为本地服务设置Allow service to interact with desktop(因为这适合我的方案,除了 2003 服务器): 链接到类似的 2003 服务器问题
  • 服务器上未安装 Windbg。

但是,我可以双击可执行文件。 只要我不关闭打开的命令窗口,这实际上就可以工作。 在"服务"窗口中,Windows 服务仍未运行,但现在只要我不关闭命令窗口或登录会话,程序就会运行。 这当然不是一个好的解决方案。

顺便说一下,这是启动代码:

using System;
using System.Diagnostics;
using Topshelf;
namespace Blabla.Endpoint
{
class Program
{
static void Main(string[] args)
{
try
{
HostFactory.Run(x =>
{
x.Service<EndpointConfiguration>(s =>
{
s.ConstructUsing(name => new EndpointConfiguration());
s.WhenStarted(tc => tc.Start());
s.WhenStopped(tc => tc.Stop());
});
x.RunAsLocalSystem();
x.SetDescription("Handles events for Blabla.Endpoint");
x.SetDisplayName("Blabla.Endpoint");
x.SetServiceName("Blabla.Endpoint");
});
}
catch (Exception ex)
{
EventLog.WriteEntry("Application", ex.ToString(), EventLogEntryType.Error);
throw;
}
}
}
}

有什么想法我接下来应该尝试什么吗?

更新 1
自发布以来,我一直无法像我希望的那样对此进行研究,但是通过更仔细地查看 EventLog(谢谢,@Rhizzakanizza),我发现在服务停止工作之前发生的最后一件事是服务器由 C:\WINDOWS\CCM\CcmExec.exe 重新启动。

谷歌表示:"进程ccmexec.exe(Microsoft SMS Agent Host)是Microsoft SMS(系统管理服务器)套件的一部分,该套件主要用于将软件补丁分发到网络上的机器。(参考链接)

有没有任何地方可以看到它可能在2019年6月26日之前或之前安装的内容? 该日期前后没有Windows Update补丁,但显然服务器已通过此过程与某些更新一起重新启动。

一些想法,

将呼叫添加到EventLog.WriteEntry();作为 main 中的第一行。某些故障可能会直接通过试捕获轰炸,尽管很少见。无论如何,我认为在显示存在新的配置问题方面会更加明确。

在服务启动期间检查安全日志中的活动。有一些差异,但您描述的关键症状与我最近遇到的相同。事实证明,这就是我尝试使用的"登录身份"设置。请注意,我也在使用TopShelf。

最后,你从6月26日到日志看了多久?它可能不是Windows更新,但也许您可以找到一些配置更改的证据。如果要撒下更宽的网,请搜索文件系统,看看是否可以根据可能与您的症状相关的修改时间识别任何有趣的更改。

最新更新