Frage

Ich habe eine kleine Anwendung, die dieselbe API wie die Powerscript-Beispiele zum Aktualisieren einer Datenbank von einem Dacpac (Datenebenenanwendung) verwendet.

Damit es auf einem Windows 2008-Server ohne installierte SQL Server-Tools funktioniert, musste ich viele DLLs referenzieren und auf diesen DLLs "Lokal kopieren" auswählen, um sie in meinen Kompilierungsordner zu verschieben. Dies funktioniert gut.

Ich möchte jetzt dieselbe API von einer Worker-Rolle in Azure aus aufrufen. Aber wenn ich es ausführe (mit den gleichen DLLs), bekomme ich

"System.IO.FileLoadException: Datei oder Assembly konnte nicht geladen werden 'Microsoft.SqlServer.BatchParser.dll' oder eine seiner Abhängigkeiten. Das Die Anwendung konnte aufgrund ihrer Konfiguration nebeneinander nicht gestartet werden ist falsch. Weitere Informationen finden Sie im Anwendungsereignisprotokoll ""

Es funktioniert einwandfrei, wenn ich es auf einem lokalen Emulator bereitstelle.

Ich konnte noch nichts aussagekräftiges aus den Protokollen abrufen (nicht sicher, ob meine Diagnose richtig ist).

Die erwähnte Datei befindet sich im veröffentlichten Paket. Ich habe 2 Versionen der Datei gefunden, aber die andere Version ist 32-Bit und ich bekomme (verständlicherweise) eine BadFormat-Ausnahme, wenn ich es versuche.

Hier sind die DLLs, auf die ich verweise:

ADODB, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
Microsoft.Build.Utilities.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL
Microsoft.CSharp
Microsoft.ReportViewer.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL
Microsoft.ReportViewer.ProcessingObjectModel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL
Microsoft.SqlServer.BatchParser
Microsoft.SqlServer.BatchParserClient
Microsoft.SqlServer.ConnectionInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.Diagnostics.STrace, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.Dmf, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.Management.Dac, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.Management.DacEnum, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.Management.DacSerialization, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.Management.Sdk.Sfc, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.Management.SmoMetadataProvider, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.Management.SqlParser, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.ServiceBrokerEnum, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.Smo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.SqlClrProvider, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.SqlEnum, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Microsoft.WindowsAzure.ServiceRuntime
Microsoft.WindowsAzure.StorageClient, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
System
System.Configuration
System.Core
System.Data
System.Data.DataSetExtensions
System.Data.Entity.Design
System.Deployment
System.Drawing
System.Windows.Forms
System.Xml
System.Xml.Linq
WindowsBase

Irgendwelche Ideen, die mir fehlen?

War es hilfreich?

Lösung

Ich glaube, ich habe das geknackt.Ich habe den Remotezugriff auf die VM aktiviert, was bedeutet, dass ich Zugriff auf die Anwendungsereignisse hatte.Nachdem ich meine Worker-Rolle ausgeführt habe, wurde in der Ereignisanzeige eine Fehlermeldung angezeigt, dass microsoft.vc80.crt nicht gefunden werden konnte.

Ich habe keine DLL mit diesem Namen gefunden, aber ich habe gefunden

microsoft.vc80.crt.manifest 

in diesem Ordner:

C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Update Cache\KB2528583\ServicePack\x64

Es zeigt auf 3 andere DLLs, die ich ebenfalls aufgenommen habe:

msvcr80.dll
msvcp80.dll
msvcm80.dll

Ich habe das Upgrade bisher nur einmal ausgeführt, aber hoffentlich ist dies jetzt erledigt.Wenn ich weitere Probleme finde / behebe, werde ich sie hier aktualisieren.

Hoffe, das hilft jemandem.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top