2010-03-03 14 views

回答

28

答案:如果你收到此错误检查服务名称及服务过程的安装服务名称。两者必须相同。

编码快乐

+1

http://www.clubmicrosoft.net/blog/post/2010/03/03/Error-1083-The-executable-program-that-this-service-is-configured-to-run- in-does-not-implement -the-service.aspx –

+4

感谢这对我有用,但我需要纠正你的东西:服务名称(在服务组件中声明)和服务安装程序名称(ServiceInstaller类的实例)必须相同。 ServiceProcessInstaller没有ServiceName和Name属性。 – s0nica

+0

是的,它解决了我的问题,通过在函数ServicesToRun中的Program.cs类中添加服务的引用,如新的ServiceName(),谢谢 – adnan

21

还要确保在入口点exe文件(通常是主要程序)的服务类的一个实例(从服务基地派生创建).eg。

private static void Main() 
     { 
      var servicesToRun = new ServiceBase[] 
               { 
                new MyService1(), 
                new MyService2() 
               }; 
      ServiceBase.Run(servicesToRun); 
     } 

如果你不这样做,说你不包括代码来创建MySerivce2的实例,如上述,你将得到当您尝试启动MyService2上述错误信息。

+0

+1这是我的问题。谢谢! –

+0

这也是我的问题,保存了我的一天,谢谢 – Noxthron

+0

是的,它通过在ServiceBase中添加服务引用解决了我的问题。我缺少服务参考谢谢 – adnan

0

要增加另一种可能性,see answer #7 on this link

解决方案的目的是按照您预期的那样在初始化时分配服务名称。在我的情况下,服务。 ServiceName未设置字段

考虑使用日志语句在ServiceBase.Run(servicesToRun)之前编写服务名称。

4

我有同样的问题。我的解决方案是检查服务名称和服务安装程序服务名称。两者必须相同。

private void InitializeComponent() 
{ 
    components = new System.ComponentModel.Container(); 
    this.ServiceName = "EmailService"; 
}