在Windows启动时.NET服务启动超时

问题描述 投票:2回答:4

我有启动Windows启动时,有时(完全随机)的服务将无法启动一个.net服务。

事件查看器显示:A timeout was reached (30000 milliseconds) while waiting for the MYSERVICE service to connect.

即使在该服务无法启动,如果我手动启动它(Windows登录后)的机器就开始罚款。

我的启动方法是非常基本的,它只是启动一个新线程的实际启动逻辑的(通常是非常快的)。

我的服务需要.NET 3.5 SP1,并且遇到了这些问题的机器是Win7的X64。我怀疑它有事情做与.NET Framework,但我不知道怎么办。这是发生在客户机和他安装了.NET 4客户端配置文件。

有任何想法吗?

.net windows-services windows-7-x64
4个回答
2
投票

我有这样一个问题。通常是由于在启动时机器负载。例如,我有SQL Server上的这个错误是由于许多其他服务开始了。

解决这个的一个简单的方法是设置服务延迟模式启动,因为那么你的服务将在较少的CPU和HD负荷启动。


1
投票

如果它是依赖于其他服务则使设置的依赖。


0
投票

我们必须在Windows 10中的类似问题,其中大多数基于.NET的服务将无法启动时,但以后可以手动启动就好了。出于某种原因,这都写在.NET服务需要更长的时间在Windows 10启动,但此修复程序适用于任何版本的Windows,包括Windows 7默认情况下,如果服务时间超过30秒才能启动无响应,服务由Windows终止。

我能说的行为改变到60秒在注册表中。去:

HKLM \系统\ CurrentControlSet \控制\

如果它不存在,创建一个DWORD名为“ServicesPipeTimeout”(减号引号)(32位)键。设置其值为60000(十进制)。这关联到60秒毫秒。

我甚至创造了一个REGFILE自动完成:

Windows注册表编辑器5.00版

[HKEY_LOCAL_MACHINE \ SYSTEM \ CURRENTCONTROLSET \控制] “ServicesPipeTimeout”= DWORD:0000ea60

只需粘贴到记事本,并保存为.reg文件。

这不是一个延迟启动,但鉴于对服务的需求增加在时间启动后响应。这解决了该问题为我们在多台机器。不幸的是,我仍然不知道为什么.NET服务需要很长时间来启动,他们就会被终止。不过,我觉得这是一个错误微软,而不一定是什么我们的用户做错了...


0
投票

对于任何人这个问题苦苦挣扎,我们有一些慢窗口10台机器完全相同的问题。我们可以通过在配置文件中generatePublisherEvidence设置为false来解决这个问题。

您可以阅读更多关于此这里 - > https://blogs.msdn.microsoft.com/winsdk/2010/01/29/you-may-get-a-service-timeout-from-a-signed-net-managed-service-application-while-the-system-is-doing-a-revocation-check-of-the-certificate-over-the-internet/

© www.soinside.com 2019 - 2024. All rights reserved.