TopShelfを使用してWindowsサービスを作成しようとしています。サービスの1つのインスタンスですべてが正常に機能します。ただし、サービスフォルダー全体を別の場所にコピーしてから、その場所でインストールを実行すると、「スタートアップ」でハングします。
名前の競合がないように、構成ファイルの値に基づいてservicename、description、displayanameを割り当てます。
TopShelfを使用してWindowsサービスを作成しようとしています。サービスの1つのインスタンスですべてが正常に機能します。ただし、サービスフォルダー全体を別の場所にコピーしてから、その場所でインストールを実行すると、「スタートアップ」でハングします。
名前の競合がないように、構成ファイルの値に基づいてservicename、description、displayanameを割り当てます。
instancename
差別化する必要があるのはサービスです。
ドキュメントから:
service.exe [動詞] [-option:値] [-switch]
installサービスをインストールします
-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