Ошибка активации при попытке получить экземпляр базы данных типа - PullRequest
0 голосов
/ 13 февраля 2019

Эта проблема связана с приложением веб-службы, которое использует Microsoft.Practices.EnterpriseLibrary.

Когда я тестирую один из API и получаю часть кода DAL, в этот момент я получаю сообщение об ошибке:

using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;
....
Database oDatabase = null;
....
oDatabase = EnterpriseLibraryContainer.Current.GetInstance<Database>();

web.config выглядит следующим образом:

<configSections>
    <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</configSections>
<dataConfiguration defaultDatabase="DefaultConnectionString">
    <providerMappings>
          <add databaseType="EntLibContrib.Data.OdpNet.OracleDatabase, EntLibContrib.Data.OdpNet, Version=5.0.505.0, Culture=neutral, PublicKeyToken=null" name="Oracle.DataAccess.Client"/>
    </providerMappings>
</dataConfiguration>
<connectionStrings>
    <add name="DefaultConnectionString" connectionString="Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 1.2.3.4)(PORT = 1521)))(CONNECT_DATA =(SID = MySID)));User Id=some_id;Password=some_pwd;" providerName="Oracle.DataAccess.Client"/>
</connectionStrings>

Исключение составляет:

Произошла ошибка активации при попытке получить экземпляр типа База данных, ключ \ "\"

и внутреннее исключение показывает:

Не удалось разрешить зависимость,

type = "Microsoft.Practices.EnterpriseLibrary.Data.Database", name = "(none)".

Исключение произошло во время: при разрешении.

Исключение: InvalidOperationException - Тип База данных не может быть создана.Вы должны сконфигурировать контейнер для предоставления этого значения.

На момент исключения контейнер был: \ r \ n \ r \ n Решение Microsoft.Practices.EnterpriseLibrary.Data.Database, (нет)

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

Я был бы признателен, если бы кто-то имел такую ​​же проблему, может сказать мне, какое было разрешение, или гуру, который может указать мне вправильное направление.

1 Ответ

0 голосов
/ 15 февраля 2019

Эта проблема, похоже, была вызвана использованием неверной версии клиента Oracle.У меня был клиент 12c, 32- и 64-битный, но мне нужен был 11g.После установки клиента 11g ошибка больше не появляется.

...