2010-10-08 26 views
11

Tôi có một ứng dụng dịch vụ windows được phát triển trong C#. Dịch vụ tương tự cần được chạy với các tệp cấu hình khác nhau. Để chạy trên những máy này trên cùng một máy, tôi cần thay đổi tên dịch vụ. Tôi có thể tạo nhiều bản sao của giải pháp, nhưng không chắc chắn cách thay đổi tên của các dịch vụ.Tôi làm cách nào để thay đổi tên dịch vụ cửa sổ?

Cảm ơn

Trả lời

11

Trong lớp dịch vụ giành chiến thắng có nguồn gốc từ ServiceBase, có một thuộc tính được kế thừa mà bạn có thể đặt được gọi là ServiceName. Bạn có thể tạo app.config, thêm một cài đặt cho tên dịch vụ và có lớp dịch vụ giành chiến thắng của bạn chỉ định thuộc tính đó cho phù hợp. Bằng cách đó, mỗi tên dịch vụ sẽ là duy nhất miễn là bạn thay đổi cài đặt trong app.config.

+1

Ví dụ này đi qua chi tiết hơn một chút nếu ai đó cần: http://www.codeproject.com/Articles/21320/Multiple-Instance-NET-Windows-Service –

+1

Đối với liên kết của Joel, các chi tiết cụ thể về cách lấy ServiceName từ app.config từ bên trong trình cài đặt không hoạt động đối với tôi (có lẽ đã lỗi thời vì nó được viết cho .NET 2.0), nhưng giải pháp này hoạt động tốt: http://stackoverflow.com/questions/8516701/how -to-get-windows-service-name-from-app-config –

2

Các cấu hình cho dịch vụ Windows được lưu trữ trong Registy, dưới HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services ... Bạn có thể sẽ muốn thay đổi cả tên của khóa (các "thư mục" và tên thật của dịch vụ tại đây) và giá trị "Tên hiển thị".

Có thể tốt hơn là use a tool like SC.EXE to configure services, để tránh gây ra sự cố với các chỉnh sửa Registry xấu. Mặc dù SC không thể đổi tên một dịch vụ tại chỗ, nó cho phép bạn xóa và tạo các dịch vụ (chỉ cần chắc chắn để có được tất cả các cài đặt đúng!).

+0

Xin lỗi nếu câu hỏi của tôi hơi khó hiểu ... Tôi muốn thay đổi tên của dịch vụ trong chính giải pháp đó. Nó được hoàn thiện bằng cách nào? – Prady

2

Tên dịch vụ cũng có thể được chỉnh sửa qua chế độ thiết kế ProjectInstaller. Có một thuộc tính được gọi là ServiceName trong ServiceInstaller.

Các vấn đề liên quan