Ошибка времени выполнения развернутого проекта с использованием DAAB 4.1 - PullRequest
0 голосов
/ 01 июня 2009

У меня странная проблема при развертывании при попытке использовать блок приложения доступа к данным Microsoft Enterprise Library 4.1. Я получаю следующее необработанное исключение при попытке использовать элемент веб-приложения, использующего DAAB:

Exception information: 
Exception type: BuildFailedException 
Exception message: The current build operation (build key Build Key[Microsoft.Practices.EnterpriseLibrary.Data.Database, DBNAME]) failed: The type initializer for 'Microsoft.Practices.EnterpriseLibrary.Data.Database' threw an exception. (Strategy type ConfiguredObjectStrategy, index 2) 

В моем файле web.config есть следующий раздел для строки подключения:

    <connectionStrings configSource="data.config" />

И data.config содержит запись для DBNAME, на которую ссылается исключение:

<?xml version="1.0"?>

<connectionStrings>`

<add name="dbname"
    providerName="System.Data.SqlClient"
    connectionString="[valid information here]" />

</connectionStrings>

Я знаю, что строка подключения действительна, потому что части приложения, которые не используют DAAB для доступа к данным, используют одну и ту же строку подключения без проблем. Кроме того, все работает нормально как на моей машине для разработки, так и на машинах других разработчиков. Это происходит только при развертывании на производственных серверах и даже не относится к сборке «release», так как эта версия отлично работает и на моем локальном компьютере.

Я подозреваю, что это, вероятно, проблема конфигурации с производственными серверами, но я не смог выяснить, что это может быть. В статье MSDN по развертыванию Enterprise Library упоминается, что развертывание сборок xcopy должно работать, и я включаю их в папку / bin, поэтому я не уверен, куда идти дальше. Есть идеи?

Ответы [ 2 ]

1 голос
/ 12 июля 2009

Ну, это дает вам предупреждение, когда вы добавляете ссылки. Вот как минимум так себя вели на моей машине. Таким образом, у вас нет веских оснований для вашей жалобы. :)

Однако сообщение об исключении совершенно неоднозначно, поэтому спасибо за информацию.

0 голосов
/ 03 июня 2009

Наконец-то понял это. Для Enterprise Library 4.1 требуется Framework 3.5, и, хотя мы все еще нацеливаемся на Framework 2.0 для нашего приложения, 3.5 установлен на наших машинах разработки благодаря использованию Visual Studio 2008. Однако у нас не было Framework 3.5 на наших производственных серверах и после этого проблема исчезла.

Загадочная вещь заключается в том, что я явно нацеливаюсь на 2.0 для компиляции во всех проектах моего решения, включая тот, который основан на Enterprise Library, поэтому можно подумать, что ссылка на сборку, для которой требуется 3.5, по крайней мере выдаст предупреждение о компиляции , Ну хорошо.

...