zoukankan      html  css  js  c++  java
  • 用.net写的windows服务无法自动启动。

    用.net写的windows服务无法自动启动。  

    可以先看日志中的描述进行判断问题。

    随windows自动启动时总是启动不了,windows日志中有两个错误,描述是:
    1:等待 MyService 服务的连接超时(30000 毫秒)。
    2:由于下列错误,MyService 服务启动失败: 服务没有及时响应启动或控制请求。
    等windows启动后用手工启动服务时一切正常。

    我估计是在windows启动时,系统分配给这个服务的资源比较少,所以这个服务占用了较多时间,导致超出30000毫秒后被windows看作启动失败。而windows启动后,手动启动服务时资源充足,所以启动成功了。

    问题已解决。
    在问题机器的注册表以下位置增加一个项,值设为60000。
    Subkey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
    Name: ServicesPipeTimeout
    Type: REG_DWORD
    Data: 60000

    参考:http://support.microsoft.com/kb/884495

    内容:若要解决此问题,服务启动过程的超时值的增加。当您增加这个值时,Microsoft ISA 服务器存储服务有更多的时间来加载在计算机启动时。若要增加服务启动时间,创建以下注册表项:

    子项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
    名称: ServicesPipeTimeout
    类型: REG_DWORD
    数据: The number of milliseconds that you want to give the services to start in

    35,000 数据值通常足以防止超时的服务。但是,您可以减少或增加此值根据您的特定启动要求。例如对于将超时值为 60 秒内将数据值为 60,000 分配给 ServicesPipeTimeout 注册表项。较大的数据值不会降低计算机的性能。若要进行该注册表项,请按照下列步骤操作:

    1. 单击 开始、 单击 运行,键入 regedit,然后单击 确定
    2. 找到并单击以下注册表子项:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
    3. 用鼠标右键单击 控件,指向 新建,然后再单击 DWORD 值
    4. 新值 # 1 框中键入 ServicesPipeTimeout,然后按 ENTER 键。
    5. 用鼠标右键单击 ServicesPipeTimeout,然后单击 修改
    6. 单击 十进制,键入所需服务超时之前等待的毫秒数,然后单击 确定

      例如对于等待 60 超时之前等待的时间 (秒),服务,键入 60000
    7. 退出注册表编辑器,然后重新启动计算机。
  • 相关阅读:
    平凡的函数(素数筛)
    Windows下搭载虚拟机以及环境安装
    2020.8.22-2020.8.31小假期自主提升计划(联赛知识点总结)
    MySQL入门详解(三)---mysql如何进行主从配置
    MySQL入门详解(二)---mysql事务、锁、以及优化
    Python中操作HTTP请求的urllib模块详解
    给自己列一份清单,可以提升自己的书目
    Javascript中的bind详解
    Python手写模拟单向链表对象,栈对象和树
    从敲入 URL 到浏览器渲染完成、对HTTP协议的理解
  • 原文地址:https://www.cnblogs.com/heavyhe/p/4547208.html
Copyright © 2011-2022 走看看