Произошла ошибка активации при попытке получить экземпляр типа База данных, ключ
У меня есть слой доступа к данным под названием "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, ключ String) в c:\Home\Chris\Projects\CommonServiceLocator\main\Microsoft.Practices.ServiceLocation\ServiceLocatorImplBase.cs: строка 53 в Microsoft.Practices.Service.ServiceLocatorImplBase.GetInstance[TService](строковый ключ) в каталоге c:\Home\Chris\Projects\CommonServiceLocator\main\Microsoft.Practices.ServiceLocation\ServiceLocatorImplBase.cs: строка 103 в Microsoft.Practices.EnterpriseLibrary.Data.DatabaseFringateD (. имя) в e:\Builds\EntLib\Latest\Source\Blocks\Data\Src\Data\DatabaseFactory.cs: строка 82 в Microsoft.Practices.EnterpriseLibrary.Data.DatabaseFactory.CreateDatabase(String name) в 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)?
Спасибо!