2012-08-02 12 views
8

TopShelf kullanarak windows hizmeti oluşturmaya çalışıyorum. Her şey hizmetin bir örneği ile iyi çalışır. Ancak, tüm hizmet klasörünü farklı bir konuma kopyaladığımda ve yüklemeyi yalnızca "başlangıç" üzerinde kaldığı yerde çalıştırdığımda.TopShelf aynı hizmetin birden fazlasını aynı makineye kurar

Bir yapılandırma dosyasındaki değere göre hizmet adı, açıklama, yer adı tanımını atayım, böylece ad çakışması yok.

+0

Bu e-posta listesine katılın ve eğer yapabiliyorsanız günlük çıktısını ekleyin. https://groups.google.com/forum/#!forum/topshelf-discuss. Bu, SO üzerinde anlamaya zor olacak; Ancak, aynı hizmetlerden ikisini çalıştırmanıza izin veren "örnek" adını ayarlayabilirsiniz. – Travis

+0

Hizmet adı ve görüntü adının benzersiz olduğundan emin misiniz? Eşsiz servicenames ile iki hizmet kurmaya çalıştı ama aynı görüntü adını kullanarak çalıştı ve o da işe yaramadı. – Bomberlt

cevap

22

Hizmetin instancename ayırt etmeniz gereken bir hizmettir. documentation itibaren

: [fiil]

service.exe [-seçenek: Değer] [-Switch]

yüklemek bir örneği -instance hizmet

yükler hizmeti birden çok kez kaydettiriyorsanız, bu adın adı

Yani kullanabilirsiniz:

service.exe install -instance:FirstInstanceOfMyService 

service.exe install -instance:SecondInstanceOfMyService 
5

, yapılandırma dosyasında hizmet örnek adı ayarlamaktır istediğini, bu gibi programlama örnek adını ayarlayabilirsiniz:

var instanceName = ConfigurationManager.AppSettings["Instance"]; 
HostFactory.Run(hostConfigurator => 
{  
    ... 
    hostConfigurator.SetDisplayName("My service"); 
    hostConfigurator.SetDescription("My service that does something"); 
    hostConfigurator.SetServiceName("MyService"); 
    hostConfigurator.SetInstanceName(instanceName); 
} 

Yani, sırasında kurulum sadece

MyService.exe install 
İlgili konular