私はSOに関する同様の質問は数多くあることを認識していますが、警告があります。.NETのさまざまなコンポーネント間で構成設定を共有する
基本的な前提は予測可能です:私はいくつかのコンポーネントから構成された製品を継承しました。これらのコンポーネントはすべていくつかの設定を共有していました。現在のところ、これらのコンポーネントは、接続文字列(blegh)を取得するためにハッシュパスワードを使用してWebサービスを呼び出しますが、Webサービスと設定値を必要とするNTサービスとの間でWindows起動時に競合条件が発生することがあります。
レジストリまたはmachine.configという1つの安全な場所からこれらの設定を共有できる洗練されたソリューションを作成したいと考えています。これらのいずれかが単一のデプロイメント環境であれば簡単に実装できますが、ここで問題となるのは、コンポーネントの1つがクリックワンアプリケーションです。
一言で言えば、私の質問は次のとおりです。クリック一回の展開にも反映される構成設定のための集中化されたメカニズムを作成するにはどうすればよいですか。私の知る限り
、これらのソリューションの両方の共有設定ファイルのローカルコピーの利用可能性に依存する:私が考えた
オプションクリック1回では機能しません。クリックワンスアプリケーションのための私達のデプロイメント環境について注意する
2つのこと:
- 展開は、このような接続文字列などの構成設定が普遍的に適用され、社内LANのネットワーク内で常にあります。
- インストール時にクリックワンアプリケーションと一緒にパッケージ化された構成設定は、その後の展開で上書きするのが安全です。
あなたが現在使用しているWebサービスもローカルマシンでもホストされていると私の前提で正しいですか?集中オプションを含めることはできませんか? – Polity
クライアントは、集中オプションが使用可能なデプロイメント環境を保証することはできません。 – staterium
その場合、私はあなたの現在の実装がそれほど悪くないことを示唆します。これは、ほとんどの信頼環境で動作し、容易に拡張可能です。競合状態は、ミューテックスを使用して起動の順序を保証することによって簡単に克服することができます。 – Polity