TopShelfを使用してWindowsサービスを作成しようとしています。サービスの1つのインスタンスですべてうまく動作します。しかし、サービスフォルダ全体を別の場所にコピーして、その場所でインストールを実行すると、「スタートアップ」でハングするだけです。TopShelf同じマシンに複数の同じサービスをインストールする
設定ファイルの値に基づいてservicename、description、displayanameを割り当てて、名前の競合がないようにします。
TopShelfを使用してWindowsサービスを作成しようとしています。サービスの1つのインスタンスですべてうまく動作します。しかし、サービスフォルダ全体を別の場所にコピーして、その場所でインストールを実行すると、「スタートアップ」でハングするだけです。TopShelf同じマシンに複数の同じサービスをインストールする
設定ファイルの値に基づいてservicename、description、displayanameを割り当てて、名前の競合がないようにします。
これは、区別する必要があるサービスのinstancename
です。
SERVICE.EXE [動詞] [-option:値] [-switch]
ををインストールインスタンス-instanceサービス
をインストールサービスを複数回登録する場合の名前
は、だからあなたが使用できます。
service.exe install -instance:FirstInstanceOfMyService
service.exe install -instance:SecondInstanceOfMyService
あなたが設定ファイルにサービスのインスタンス名を設定することで何をしたい場合は、このようにプログラム的にインスタンス名を設定することができます。
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);
}
ので、中あなただけが実行するインストール
MyService.exe install
可能であれば、メーリングリストに参加してください。 https://groups.google.com/forum/#!forum/topshelf-discussこれはSO全体で把握するのが難しいでしょう。ただし、同じサービスの2つを実行できるようにする "インスタンス"名を設定することができます。 – Travis
サービス名と表示名が一意であることを確認してください。一意のサービス名で2つのサービスをインストールしようとしましたが、同じdisplaynameを使用していましたが、うまく機能しませんでした。 – Bomberlt