2009-06-01 5 views
0

Ich habe ein seltsames Problem bei der Bereitstellung beim Versuch, den Data Access Application Block 4.1 der Microsoft Enterprise Library zu verwenden. Ich erhalte die folgende Unbehandelte Ausnahme beim Versuch, das Element der Web-Anwendung zu verwenden, die die DAAB nutzen:Laufzeitfehler für bereitgestelltes Projekt mit DAAB 4.1

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) 

Meine web.config hat den folgenden Abschnitt für connection:

<connectionStrings configSource="data.config" /> 

Und die Daten. config enthält einen Eintrag für den DBNAME in der Ausnahme verwiesen:

<?xml version="1.0"?> 

<connectionStrings>` 

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

</connectionStrings> 

ich weiß, dass die Verbindungszeichenfolge gültig ist, weil die Teile der Anwendung, die nicht mit D AAB für den Datenzugriff verwendet dieselbe Verbindungszeichenfolge ohne Probleme. Darüber hinaus funktionieren die Dinge auf meiner Entwicklungsmaschine genauso gut wie auf den Maschinen der anderen Entwickler. Dies geschieht nur bei der Bereitstellung auf den Produktionsservern und ist nicht spezifisch für den Build "release", da diese Version auch auf meinem lokalen Rechner funktioniert.

Ich vermute, dass es wahrscheinlich ein Konfigurationsproblem mit den Produktionsservern ist, aber ich konnte nicht herausfinden, was es sein könnte. Der MSDN-Artikel zum Bereitstellen von Enterprise Library erwähnt, dass eine xcopy-Bereitstellung der Assemblys funktionieren sollte, und ich schließe sie in den Ordner/bin ein, sodass ich nicht sicher bin, wohin ich von dort aus gehen soll. Irgendwelche Ideen?

Antwort

0

Endlich herausgefunden. Enterprise Library 4.1 erfordert Framework 3.5 und obwohl wir immer noch Framework 2.0 für unsere Anwendung verwenden, wird 3.5 auf unseren Entwicklungsmaschinen installiert, da Visual Studio 2008 verwendet wird. Wir haben jedoch kein Framework 3.5 auf unseren Produktionsservern und der Problem verschwand danach.

Die rätselhafte Sache ist, dass ich explizit 2.0 für die Kompilierung in allen Projekten in meiner Lösung einschließlich der, die auf der Enterprise Library basiert zielt, so würde Sie denken, eine Referenz auf eine Assembly, die 3.5 erfordert, würde mindestens eine Warnung auf Zusammenstellung. Naja.

1

Nun, es gibt Ihnen eine Warnung, wenn Sie die Referenzen hinzufügen. So verhält es sich zumindest auf meiner Maschine. Sie haben also keine solide Grundlage für Ihre Beschwerde. :)

Allerdings ist die Ausnahmebedingungsnachricht völlig mehrdeutig, also danke für die Info.