Windows 服务未在 Windows 10 升级时启动

标签 windows service

我写了一个 Windows 服务,它可以在大多数操作系统中正常运行。我已经缩小了从 Windows 8 升级的 Windows 10 导致的问题,即当服务设置为自动时,服务不会在重新启动时启动。 我发现延迟启动确实可以。 想知道是否有人知道从头开始的完整安装和升级之间的细微差别,这可能会导致缩小这个难以捉摸的问题的范围。

当它不工作时,不会生成任何日志或事件。它似乎没有尝试失败 - 只是没有运行(开始)。


我刚遇到一个运行良好的安装,操作系统是从 Win 8 升级而来的。似乎有一些不同的依赖关系。该服务是针对 .Net Framework 4.0 x86 编写的。 该服务手动启动就好了。 自动(启动时)启动不起作用。我正要说它失败了 - 但事实并非如此,因为它似乎甚至没有尝试过。

最佳答案

我们在 Windows 10 中遇到了类似的问题,其中大多数基于 .Net 的服务在启动时会失败,但稍后可以手动启动就好了。出于某种原因,使用 .NET 编写的服务在 Windows 10 中启动需要更长的时间。默认情况下,如果服务启动时间超过 30 秒且无响应,则该服务将被 Windows 终止。

我能够在注册表中将该行为更改为 60 秒。前往:

HKLM\SYSTEM\CurrentControlSet\Control\

如果它尚不存在,请创建一个名为“ServicesPipeTimeout”(减去引号)的 DWORD(32 位) key 。将其值设置为 60000(十进制)。这与 60 秒(以毫秒为单位)相关。

我什至创建了一个 regfile 来自动执行此操作:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control] "ServicesPipeTimeout"=dword:0000ea60

只需粘贴到记事本中并另存为 .reg 文件即可。

不是延迟启动,而是增加了启动后服务响应的时间。这为我们解决了多台机器上的问题。不幸的是,我仍然不知道为什么 .NET 服务需要很长时间才能启动以致于它们被终止。但是,我觉得这是微软的一个错误,并不一定是我们用户做错了什么......

关于Windows 服务未在 Windows 10 升级时启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33238665/

相关文章:

Python模拟keydown

java - 绑定(bind)服务和前台服务有什么区别?

c# - 基于服务的数据库

c++ - 如何使用 visual studio express 调试到汇编级别?

Mongodb 身份验证不适用于配置文件

一段时间未使用应用程序后,android 服务停止工作

android - 如何从服务调用 Activity 方法

c# - 带 SSL/TLS 的 wsdl.exe

c# - 如何确定连接的套接字是否使用 IPSec?

c++ - 将 SSL 客户端证书与 IXMLHTTPRequest3 一起使用