DLLでWebサイト固有のConnectionStringを使用する
-
03-07-2019 - |
質問
セットアップ:
ConnectionStringを使用してSQLデータベースに接続するDLLがあります。 DLLをWebサイトに追加するとき、DLLが正しく機能するためにweb.configに接続文字列を追加する必要があります(これは仕様によるものです)。 web.configに追加すると、すべて正常に動作します(予想どおり)。
問題:
接続文字列をIISにあるWebサイトのASP.NETアプリケーション設定に移動したいときに問題が始まります>デフォルトのウェブサイト>プロパティ> ASP.NETタブ>グローバル設定を編集...>接続文字列マネージャー
web.configから削除してそこに置くと、DLLが機能しません。接続文字列を自分のウェブサイトの他の場所で(DLLからではなく)使用すると、このメソッドでデータベースにアクセスできますが、何らかの理由でDLLはweb.configにある場合にのみアクセスできます。
質問:
web.configの代わりにASP.NET構成設定接続文字列マネージャーにリストされている接続文字列を使用するようにDLLを取得するにはどうすればよいですか?
解決
ConfigurationManager.ConnectionStringsを介して接続文字列を検索するのではなく、WebConfigurationManagerクラスを介して取得できる一般的なASP.Net構成設定からセクションを検索する必要があります。
// Get the connectionStrings section.
ConnectionStringsSection connectionStringsSection =
WebConfigurationManager.GetSection("connectionStrings")
as ConnectionStringsSection;
// Get the connectionStrings key,value pairs collection.
ConnectionStringSettingsCollection connectionStrings =
connectionStringsSection.ConnectionStrings;
// Get the collection enumerator.
IEnumerator connectionStringsEnum =
connectionStrings.GetEnumerator();
所属していません StackOverflow