2010-03-03 18 views

Trả lời

28

câu trả lời: nếu bạn đang nhận được lỗi này kiểm tra tên dịch vụ và quá trình dịch vụ tên dịch vụ cài đặt. Cả hai phải giống nhau.

hạnh phúc mã hóa

+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

Cảm ơn điều này đã làm việc cho tôi, nhưng tôi cần sửa lại cho bạn thứ gì đó: tên dịch vụ (như được khai báo bên trong thành phần dịch vụ của bạn) và tên trình cài đặt dịch vụ (ví dụ của lớp ServiceInstaller)) phải giống nhau. ServiceProcessInstaller không có một ServiceName hay một thuộc tính Name. – s0nica

+0

có, giải quyết vấn đề của tôi bằng cách thêm tham chiếu của dịch vụ trong lớp Program.cs bên trong hàm ServicesToRun như ServiceName mới() nhờ – adnan

21

Cũng đảm bảo rằng trong điểm mấu chốt cho các exe (thường là thủ tục chính) một thể hiện của lớp dịch vụ của bạn (có nguồn gốc từ cơ sở dịch vụ được tạo ra) .eg.

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

Nếu bạn không làm điều này, nói rằng bạn không bao gồm mã để tạo ra thể hiện của MySerivce2, như ở trên, bạn sẽ nhận được thông báo lỗi trên khi bạn cố gắng để bắt đầu MyService2.

+0

+1 Đây là vấn đề của tôi. Cảm ơn! –

+0

Đây cũng là vấn đề của tôi, đã cứu ngày của tôi, cảm ơn bạn – Noxthron

+0

vâng, giải quyết vấn đề của tôi bằng cách thêm tham chiếu dịch vụ bên trong ServiceBase. tôi đã thiếu tham khảo dịch vụ nhờ – adnan

0

Để thêm khả năng khác, see answer #7 on this link.

Câu trả lời của giải pháp là gán tên dịch vụ như bạn mong đợi vào lúc khởi tạo. Trong tình hình của tôi, Dịch vụ. Trường ServiceName không được đặt

Xem xét sử dụng báo cáo nhật ký để viết tên dịch vụ ngay trước ServiceBase.Run(servicesToRun).

4

Tôi gặp vấn đề tương tự. Giải pháp của tôi cho việc này là kiểm tra tên dịch vụ và tên dịch vụ cài đặt dịch vụ. Cả hai phải giống nhau.

private void InitializeComponent() 
{ 
    components = new System.ComponentModel.Container(); 
    this.ServiceName = "EmailService"; 
} 
Các vấn đề liên quan