Произошла ошибка активации при попытке получить экземпляр типа База данных, ключ - PullRequest
0 голосов
/ 12 октября 2011

У меня есть слой доступа к данным под названием 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>

Я взял это из web.config для уровня представления, потому что только LDA необходим для доступа к базе данных, и вместо того, чтобы шифровать строки соединений, мы хотели просто поместить его в скомпилированную dll, поскольку нам нужна нулевая динамическая способность изменить строки подключения.

С вышеупомянутым в web.config проекта уровня представления все работает нормально, но когда я пытаюсь взять вышеизложенное и поместить его в app.config проекта доступа к данным 'LDA', я получаю следующее ошибка:

Произошла ошибка активации при попытке получить экземпляр типа Database, ключ "LTTDBConn"

в Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance (Тип serviceType, ключ строки) в каталоге c: \ Home \ Chris \ Projects \ CommonServiceLocator \ main \ Microsoft.Practices.ServiceLocation \ ServiceLocatorImplBase.cs: строка 53 в Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance [TService] (строковый ключ) в c: \ Home \ Chris \ Projects \ CommonServiceLocator \ main \ Microsoft.Practices.ServiceLocation \ ServiceLocatorImplBase.cs: строка 103 в Microsoft.Practices.EnterpriseLibrary.Data.DatabaseFactory.InnerCreateDatabase (имя строки) в e: \ Builds \ EntLib \ Latest \ Source \ Blocks \ Data \ Src \ Data \ DatabaseFactory.cs: строка 82 в Microsoft.Practices.EnterpriseLibrary.Data.DatabaseFactory.CreateDatabase (имя строки) в e: \ Builds \ EntLib \ Latest \ Source \ Blocks \ Data \ Src \ Data \ DatabaseFactory.cs: строка 68 в Lisa.DataAccess.OracleHelper.DALHelper.ExecuteReader (String spName) в \ DALHelper.cs: строка 79

Есть идеи, как это сделать? то есть, есть webconfig в проекте веб-сайта и appconfig в проекте доступа к данным (который содержит информацию db conn)?

Спасибо!

...