接続文字列の場合、共有ファイルを指すことは確かに可能です。共有ファイルがネットワークUNC上にある場合は、アプリがホストされるマシンの管理者権限が必要です。
解決策:web.configで、configSourceを使用してローカル構成ファイルをポイントします。.Netの制限により、これはルート構成ファイルのレベル以下である必要があります。アプリフォルダー自体のファイルをポイントするだけです。
<connectionStrings configSource="ConnectionStrings.config" />
アプリケーションプールユーザーがアクセスできる共有の場所に、共有接続文字列を含む構成ファイルを追加します。このファイルには、connectionStringsセクション自体以外のxmlを含めることはできません。共有ファイルConnectionStrings.configは、次のようになります。
<connectionStrings>
<clear/>
<add name="connString1" connectionString="connString1 info goes here"/>
<add name="connString2" connectionString="connString2 info goes here"/>
</connectionStrings>
今トリック。外部の共有構成ファイルを指すWindowsシンボリックリンクをアプリフォルダーに作成します。これを行うには、管理者権限が必要です。
mklink ConnectionStrings.config \\someServer\someShare\someFolder\ConnectionStrings.config
.Netをアウトスマートにしました。構成システムは、configSource設定を使用して、ConnectionStrings.configというローカルファイル内の接続文字列を検索します。シンボリックリンクは.Netへのファイルのように見え、シンボリックリンクは共有構成ファイルに解決されます。
警告:共有ファイルを変更しても、.Netでアプリが自動的に再起動することはありません。IISの場合、Webサイトまたはアプリプールを手動で再起動する必要があります。
シンボリックリンクを作成するには管理者権限が必要なため、このアプローチはすべての人に役立つとは限りません。共有ファイルが同じ論理ドライブ上にある場合に機能する可能性のある2つの関連する代替手段があります-ハードリンクとジャンクション。詳細については、このディスカッションおよびこのディスカッションを参照してください。