2012-06-12 32 views
5

Tôi có một dịch vụ đang chạy trong một hệ thống trong một số trường hợp. Tôi cần tìm DISPLAY_NAME dịch vụ từ dịch vụ. Tôi đã thử ServiceBase.ServiceName nhưng nó trả về (có thể) tên dịch vụ từ trình cài đặt dự án, ít nhất trong trường hợp này là vô ích.Cách tìm "Tên hiển thị" của dịch vụ trong .net?

Dịch vụ được cài đặt bởi installutil với thông số /name=.

Sửa

Tôi có một cách giải quyết dựa trên Imran Balouch câu trả lời. Tôi đọc tên trong trình cài đặt Me.Context.Parameters("name") và ghi nó vào ImagePath khoá con đăng ký và đọc nó bằng Environment.GetCommandLineArgs trong một dịch vụ.

Trả lời

4

Bạn đã thêm ProjectInstaller vào dự án dịch vụ cửa sổ của mình chưa? Nếu có hơn ProjectInstaller bạn thêm ServiceInstaller cho dịch vụ của bạn và trong ServiceInstaller đó, bạn có thể chỉ định tên hiển thị của dịch vụ. Chọn serviceinstaller đó và trong thuộc tính thiết lập của nó Display Name hoặc trong InitializeComponent của ProjectInstaller.Designer.cs hoặc ProjectInstaller.Designer.vb bạn có thể chỉ định tên hiển thị như:

this.yourServiceInstaller.DisplayName = "Service Display Name"; 
+0

Dịch vụ được cài đặt bởi installutil với tên được chỉ định. – IvanH

+0

Nhưng bạn sẽ có thêm một projectinstaller trong dự án dịch vụ windows của bạn, phải không? –

+1

Có, có một MultiProjectInstaller.vb. Vì vậy, một số giải pháp là để đọc/tên (nếu có thể và thiết lập nó). – IvanH

2

Bạn có thể lấy tên hiển thị của dịch vụ, trao ServiceName ngắn của mình, bằng cách sử dụng các lớp ServiceController:

ServiceController sc = new ServiceController(this.ServiceName); 
var displayName = sc.DisplayName; 

Như bạn nói, bạn có thể lấy ServiceName dễ dàng, vì nó là một thành viên của lớp của riêng bạn, được kế thừa từ ServiceBase. Tên dịch vụ này sẽ là khác nhau cho các trường hợp khác nhau của các dịch vụ đang chạy trên cùng một máy vì đó là một số nhận dạng duy nhất.

+1

Nó dừng lại với một lỗi "giá trị không hợp lệ cho tên tham số." Và hoạt động khi tôi chỉ định tên chính xác nhưng đó là những gì tôi đang tìm kiếm. – IvanH

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