我有启动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客户端配置文件。
有任何想法吗?
我有这样一个问题。通常是由于在启动时机器负载。例如,我有SQL Server上的这个错误是由于许多其他服务开始了。
解决这个的一个简单的方法是设置服务延迟模式启动,因为那么你的服务将在较少的CPU和HD负荷启动。
如果它是依赖于其他服务则使设置的依赖。
我们必须在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服务需要很长时间来启动,他们就会被终止。不过,我觉得这是一个错误微软,而不一定是什么我们的用户做错了...
对于任何人这个问题苦苦挣扎,我们有一些慢窗口10台机器完全相同的问题。我们可以通过在配置文件中generatePublisherEvidence设置为false来解决这个问题。