これが私が思いついた解決策であり、チームに提案しています。
問題:
環境間の展開中に発生する人為的な構成エラーを排除するために、web.config 変換の使用を必要とする新しい標準を実装したいと考えています。これには、web.config 変換ファイルの作成を担当する担当者が、他の環境への接続文字列のユーザー名とパスワードを含む、各環境のすべての構成値を知っている必要があります。インフラストラクチャ チームには、書き込みアクセス権を持つデータベース ユーザーのユーザー名とパスワードを彼ら以外は知ることができないというポリシーがあります。したがって、私たちは対立しています。
提案された解決策:
web.config 内の任意の構成セクションは、web.config ファイル自体で明示的に定義する代わりに、そのセクションの構成を含む外部ファイルを指すことができます。
たとえば、接続文字列セクションを次のように定義する代わりに、
<connectionStrings>
<add name="conn_ExceptionManagement" connectionString="Data source=mydb;database=App_Error_Logging;uid=user;pwd=password" providerName="System.Data.SqlClient" />
</connectionStrings>
次のように定義できます。
<connectionStrings configSource="myApp.ConnectionStrings.config"/>
次に、「myApp.ConnectionStrings.config」というファイルを次の内容で作成します。
<?xml version="1.0"?>
<connectionStrings>
<add name="conn_ExceptionManagement" connectionString="Data source=mydb;database=App_Error_Logging;uid=user;pwd=password" providerName="System.Data.SqlClient" />
</connectionStrings>
そのため、Web サーバーのルートに「CONFIG」というフォルダーを作成し、その中に各アプリケーションのファイルを「myAppName.ConnectionStrings.config」のような名前で配置できます。そのファイルには、その環境でアプリケーションに使用するすべての接続文字列を入れます。次に、web.config 変換で、接続文字列を明示的に更新する代わりに、接続文字列構成セクションを変更して、Web サーバー上のそのファイルを指すようにします。このように、インフラストラクチャ チームは、これらの環境の接続文字列を実際に確認できる唯一の人物であり、展開中に web.config 内の接続文字列を変更する必要がなくなります。加えて、