OnStart()未被调用。服务进程无法连接到服务控制器。手动工作,并在其他机器上工作

时间:2014-03-07 22:04:57

标签: c# windows-services

我有一个c#应用程序作为服务运行并自动启动。如果手动启动此服务,该服务就会正常启动,但在某个特定Windows Server 2008 R2上的事件查看器中,此错误(服务进程无法连接到服务控制器)失败。我在第二台Windows Server 2008 R2 VM上尝试了它,它自动启动。具体是什么导致了这个错误?

此服务没有依赖关系,没有正确的权限,只是读取一个微小的配置文件,并启动一个线程,所以它不会花费超过30秒,因为这篇文章提到了http://social.msdn.microsoft.com/Forums/en-US/dc177c75-b41b-4ff7-ae67-9ad60919e507/my-windows-service-is-not-starting-when-the-system-boots-up-even-though-it-is-set-to-automatic?forum=netfxbcl

我有一个调试语句作为OnStart()的第一行,它永远不会输出到日志文件(我正在使用Log4Net)。我调用ServiceBase.Run()之前在Main()中有一个日志语句,它输出到我的日志文件,所以我知道日志记录正在运行。

1 个答案:

答案 0 :(得分:7)

我在这里偶然发现了这个解决方案:Why can't I install my service (runtime newer than loaded runtime)?

这解决了我的问题:

这就是我必须做的事情:

  

右键单击Visual Studio中的服务项目   转到“属性”
  将“启动对象”设置为服务名称(已将其设置为>值“(未设置)”)。
  保存。
  构建尝试再次安装。

     

有效!好极了!我们都可以回家了!