Tôi đã tạo một dịch vụ Windows trong C#, cài đặt nó trên một máy chủ và nó đang chạy tốt.Làm cách nào để định cấu hình tên của dịch vụ Windows khi cài đặt (hoặc dễ dàng trong thời gian biên dịch)?
Bây giờ tôi muốn cài đặt lại cùng một dịch vụ, nhưng chạy từ một thư mục làm việc khác, có tệp cấu hình khác. V.v. Do đó, tôi muốn có hai (hoặc nhiều hơn) phiên bản của cùng một dịch vụ đang chạy đồng thời . Ban đầu, điều này là không thể vì trình cài đặt sẽ phàn nàn rằng đã có dịch vụ với tên đã được cài đặt.
Tôi có thể khắc phục điều này bằng cách thay đổi mã của tôi, đặt thuộc tính ServiceBase.ServiceName
thành giá trị mới, sau đó biên dịch lại và chạy lại InstallUtil.exe. Tuy nhiên, tôi rất muốn nếu tôi có thể thiết lập tên dịch vụ tại cài đặt thời gian, tức là lý tưởng tôi sẽ làm một cái gì đó giống như
InstallUtil.exe/i /servicename = "MyService Instance 2" MyService.exe
Nếu điều này không thể thực hiện được (tôi rất nghi ngờ nó), tôi muốn có thể tiêm tên dịch vụ khi tôi xây dựng dịch vụ. Tôi nghĩ rằng nó có thể có thể sử dụng một số loại xây dựng sự kiện, sử dụng một msbuild thông minh hoặc nant trick hoặc một cái gì đó dọc theo những dòng, nhưng tôi đã không có một đầu mối.
Mọi đề xuất sẽ được đánh giá rất nhiều.
Cảm ơn bạn đã dành thời gian.
Có lý do nào khiến bạn không cung cấp dịch vụ của mình khả năng thực thi logic nghiệp vụ trong các chủ đề n cho các tệp n-config không? Vì vậy, lưu các vấn đề nhiều trường hợp từ đầu? – Nate
Hmmm, đó có thể là một điểm tốt. Nhưng dịch vụ đã được tạo ra cách đây một năm, trước khi tôi nhận ra rằng tôi muốn có thể chạy nhiều phiên bản, vì vậy ứng dụng không thực sự được cấu trúc một cách thích hợp. Tuy nhiên, tôi đã tìm thấy một giải pháp và sẽ đăng nó trong giây lát. – Rune