Настройка Enterprise Library 5.0 Блок доступа к данным - PullRequest
3 голосов
/ 10 апреля 2011

Я пытаюсь понять, как настроить корпоративную библиотеку 5.0 Блок доступа к данным.При запуске моего юнит-теста я получаю следующую ошибку:

Microsoft.Practices.ServiceLocation.ActivationException was caught
  Message=Activation error occured while trying to get instance of type Database, key "PokerAdviserProvider"
  InnerException: Microsoft.Practices.Unity.ResolutionFailedException
       Message=Resolution of the dependency failed, type = "Microsoft.Practices.EnterpriseLibrary.Data.Database", name = "PokerAdviserProvider".
Exception occurred while: while resolving.
Exception is: InvalidOperationException - The type Database cannot be constructed. You must configure the container to supply this value.

Строка кода, где я получаю это:

var db = DatabaseFactory.CreateDatabase("PokerAdviserProvider");

App.config:

<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="false" />
    </configSections>
    <dataConfiguration defaultDatabase="PokerAdviserProvider" />
    <connectionStrings>
        <add name="PokerAdviserProvider" connectionString="server=(localhost);Initial Catalog=PokerAdviser;uid=abc;pwd=xyz"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

Я немного погуглил и нашел несколько ответов, что эти настройки также должны быть помещены в app.Config моего проекта unittest, но это не имеет значения.

Янемного застрял здесь, поэтому любая помощь высоко ценится.

Редактировать:

Я ссылался на правильные DLL (те, которые из Program Files, а не из исходного кода),так что это тоже не проблема.

Ответы [ 3 ]

2 голосов
/ 22 февраля 2012

Я наконец исправил эту проблему:

Error: Activation error occured while trying to get instance of type Database, key "<database name>"

Inner Exception:  Resolution of the dependency failed, type = Microsoft.Practices.EnterpriseLibrary.Data.Database

Я запускал VS 2010 на Windows 7, Enlib 5.0. Следующее сработало для меня. Хотел распространить слово вокруг

  1. Убедитесь, что у вас есть правильная ссылка на Microsoft.Practices.Unity.dll

  2. Получить последний пакет обновления для VS 2010

0 голосов
/ 26 ноября 2012

Обратитесь к этим двум хорошим сообщениям post1 & post2 о конфигурации библиотеки предприятия

0 голосов
/ 13 апреля 2011

Наконец-то разобрался.Я использую DAAB в библиотеке классов моего веб-сервиса и подумал, что мне нужно создать app.config в этой библиотеке.Должен был знать, что это не могло работать.Мой разум был, вероятно, далеко, когда я делал это ...

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...