2010-03-03 35 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"; 
}