2009-08-25 33 views
5

なぜconnectionStringsという別のセクションがありますか?私は、新しいプロジェクトでこれを気づいたまで、私はいつもちょうど、のappSettingsを使用していますWeb.configファイルのappSettingsとconnectionStringsの違いは?

<appSettings> 
<add key="SqlConnString" value="server=ABC;database=ABC;uid=A;pwd=B;"/> 
</appSettings> 

<connectionStrings>  
</connectionStrings> 

は違いはありますか?なぜ私はもう一方を使うべきなの? documentationから

答えて

9

のconnectionStrings要素 は、ASP.NETアプリケーションや 機能の名前/値として 接続文字列、 ペア、データベースのコレクションを指定します。

以前のバージョンのASP.NETでは、 接続文字列が appSettingsに格納されていました。 ASP.NET 2.0では、セッション、メンバーシップ、 パーソナライゼーション、ロールマネージャー、 などの の機能は、 の接続文字列 に格納されている接続文字列に依存しています。 connectionStrings要素を使用して、 アプリケーションの接続文字列を 個格納することもできます。

実際の唯一の違いは、焼き付けられたASP.NET 2.0の機能では、接続文字列がconnectionStrings領域にあることが予想されることです。

+0

なぜセッション、メンバーシップ、パーソナライゼーション、および役割マネージャはアプリの設定を活用できませんでしたか?接続文字列は、アプリケーション設定では提供しない追加の機能は何ですか? – Paul

2

接続文字列を<connectionStrings>セクションに分けると、設定の読み込み、保守、処理がより簡単になります。

さらに、接続文字列は一般的に機密品であるため暗号化するだけでセキュリティを強化することができ、自分のセクションにある場合はそのセクションを簡単に暗号化して残りの部分を残すことができますあなたのapp.configをプレーンテキストで保存しておくと、簡単に設定を更新して変更することができます。

Marc

+0

アプリの設定を簡単に暗号化できます。分離については、私は接続文字列とappsettings以外のappsettingsを整理するための多くの異なる方法を考えることができます。私は、エリックが言及したよりも、この分離を導入するMSFTの決定に多くがあったことを願っています。これはそうでないと思われます。 – Paul

+0

さらに、この決定には今日、奇妙な副作用があるようです。 Azure App Service Plansでは、アプリケーション設定(アプリケーション設定と接続文字列の両方)を設定できます。ただし、アプリケーション構成はapp.configアプリケーション設定をオーバーライドしませんが、接続文字列はapp.config接続文字列をオーバーライドします。このため、接続文字列のオーバーライド機能のために、単に接続文字列の設定を接続文字列に入れています。私はこれを読んだり、維持したり、扱いやすくしていません。 – Paul

+0

@Paul - ポータルで設定されたアプリケーションの設定Webサイトのweb.configまたはwebjobのapp.configファイルのappSettingsを上書きします。私はこれをいつも使っています。 – Tim

関連する問題