作成しているWindowsサービスがあり、開発者にサービスを構成させるためにどのオプションを使用できるのか疑問に思っています。
このサービスは、全体として大規模なオープンソースプロジェクトの一部であるため、さまざまなマシンにインストールされる予定です。
通常、これにはweb / app.configを使用しますが、これが可能かどうかはわかりません。
したがって、私は他の人がこのケースをどのように処理するかを探しています。
作成しているWindowsサービスがあり、開発者にサービスを構成させるためにどのオプションを使用できるのか疑問に思っています。
このサービスは、全体として大規模なオープンソースプロジェクトの一部であるため、さまざまなマシンにインストールされる予定です。
通常、これにはweb / app.configを使用しますが、これが可能かどうかはわかりません。
したがって、私は他の人がこのケースをどのように処理するかを探しています。
あなたはあなたが期待するようにします。app.configを使用します。これは<exeName>.config
、プロジェクトのビルド時に名前が変更さ<exeName>.config
れ、と呼ばれるサービスによって読み取られます<exeName>
。
設定は階層化された方法で適用され、machine.configなどのマシン上の他の構成ファイルから取得される場合があります。構成がどのように処理されるかについては、MSDNで読むことができます
編集
コメントへの応答:サービスは、起動時にのみ構成を読み取ります(パフォーマンス上の理由から)。後で設定ファイルをリロードしたい場合は、自分で処理する必要があると思います。
構成ファイルの最終変更日時を読み取ってファイルが変更されたかどうかを判断するか、ファイルシステムウォッチャーConfigurationManager.RefreshSection("appSettings")
をセットアップしてから、構成マネージャーに、そのセクションを呼び出して、次に読み取るときにそのセクションを再ロードするように指示することができます。 次にアクセスしたときにディスクからリロードされます。ConfigurationManagerのMSDNドキュメントを参照してください
サービスであるexeと同じ名前の.configファイルを使用できます。
サービスが MyService.exe として実行されている場合、その構成ファイルは MyService.exe.config になります。
Visual Studio では、アプリケーション構成ファイルを追加するだけです。これにより、app.config ファイルがプロジェクトに追加されます。
その後、ASP.Net アプリケーションの場合と同様に、ConfigurationManager クラスを使用して AppSettings や ConnectionStrings などにアクセスできます。