次のコードを含む「LDA」と呼ばれるデータ アクセス レイヤーがあります。
db = DatabaseFactory.CreateDatabase("myConn");
そして、次の app.config :
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
<section name="oracleConnectionSettings" type="Microsoft.Practices.EnterpriseLibrary.Data.Oracle.Configuration.OracleConnectionSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
</configSections>
<dataConfiguration defaultDatabase="myConn">
<providerMappings>
<add databaseType="Microsoft.Practices.EnterpriseLibrary.Data.Oracle.OracleDatabase, Microsoft.Practices.EnterpriseLibrary.Data"
name="Oracle.DataAccess.Client" />
<add databaseType="Microsoft.Practices.EnterpriseLibrary.Data.Oracle.OracleDatabase, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
name="System.Data.OracleClient" />
</providerMappings>
</dataConfiguration>
<oracleConnectionSettings>
<add name="myConn"></add>
</oracleConnectionSettings>
<connectionStrings>
<add name="myConn" connectionString="user id=xxxx;password=xxxx;Data Source=XXXX; Connection Lifetime=60;Pooling=true;Min Pool size=5;"
providerName="System.Data.OracleClient" />
</connectionStrings>
</configuration>
LDA のみがデータベースにアクセスする必要があり、接続文字列を暗号化するのではなく、接続文字列を変更する動的な機能が必要ないため、コンパイル済みの dll に入れたかったため、プレゼンテーション レイヤーの web.config からこれを取り出しました。 .
プレゼンテーション層プロジェクトの web.config で上記を使用すると、すべて正常に動作しますが、上記を取得してデータ アクセス プロジェクト 'LDA' の app.config に配置しようとすると、次のエラーが発生します。
タイプ データベース、キー「LTTDBConn」のインスタンスを取得しようとしたときにアクティベーション エラーが発生しました
c:\Home\Chris\Projects\CommonServiceLocator\main\Microsoft.Practices.ServiceLocation\ServiceLocatorImplBase.cs:行 53 Microsoft.Practices.ServiceLocation の Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance (タイプ serviceType、文字列キー) で。 c:\Home\Chris\Projects\CommonServiceLocator\main\Microsoft.Practices.ServiceLocation\ServiceLocatorImplBase.cs:行 103 の ServiceLocatorImplBase.GetInstance[TService](文字列キー) Microsoft.Practices.EnterpriseLibrary.Data.DatabaseFactory.InnerCreateDatabase(String name) in e:\Builds\EntLib\Latest\Source\Blocks\Data\Src\Data\DatabaseFactory.cs:line 82 at Microsoft.Practices.EnterpriseLibrary.Data.DatabaseFactory.CreateDatabase(String name) in e:\Builds\ EntLib\Latest\Source\Blocks\Data\Src\Data\DatabaseFactory.cs:Lisa.DataAccess.OracleHelper.DALHelper の 68 行目。\DALHelper.cs:line 79 の ExecuteReader(String spName)
これを実現する方法についてのアイデアはありますか? つまり、Web サイト プロジェクトに webconfig があり、データ アクセス プロジェクト (db conn 情報を含む) に appconfig がありますか?
ありがとう!