自己写的windows服务,设置了开机自动启动,但是开机无法自动启动,
报错:A timeout was reached (30000 milliseconds) while waiting for the MonitorService service to connect.
代码中需要连接一个webservice:MonitorService。
这个会不会是因为网络问题?
加了几个服务依赖性后,有时能自动启动,有时还是报上面的错,求高人指点。

解决方案 »

  1.   

    反正错误显示是连接问题。你是不是在服务中没有加错误处理呢,在连接网络服务时Try一下,连不上再重复,避免出现硬错误,导致服务关闭。
      

  2.   

    是不是Web server还没有启动。简单的方法就是在连接web service的时候Timeout的时候sleep一会。再重试。
      

  3.   

    ServiceBase.Run(ServicesToRun); 
    是在这个注册服务的地方Try一下,还是在用到webservice的地方?
    如何在连接网络服务时Try一下,连不上再重复?
      

  4.   

    web server是启动了的
     
    MonitorService ms = new MonitorService();
    是这个用到了webservice,如何Timeout的时候sleep一会,再重试?
    try catch一下?
      

  5.   

    将MonitorService设置为该服务的依赖项...
      

  6.   

    那你可以让它sleep(20000),等待20秒,再启动服务,试试是不是windows 自己的问题?
      

  7.   

    开机的时候webservice能连上吗?
    在用到webservice的地方Try一下,
      

  8.   


    从你的状况来看,第一你应该将连接webservice的代码写到启动后的线程中,而不是服务启动的Start()中,
    另外我觉得你可以试试自身服务启动后,延迟一会儿再连接你的webservice。
      

  9.   

    试过修改注册表将ServicesPipeTimeout设为60s,然后再启动服务钱sleep(30000)的方法,成功启动的机会大了很多。但是boss不让改注册表,郁闷!
      

  10.   

    Thread.Sleep(30000);
    判断WebService是否连接上,因为xp和2003都是先启动系统后连接网络。