0

次のコードを含む「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 がありますか?

ありがとう!

4

0 に答える 0