2013-04-16 4 views
5

Ich versuche, eine Website, die ich hosste, auf einem Server mit IIS auf eine Azure-Website zu verschieben. Ich benutze ein COM-Objekt, aber ich bin mir nicht sicher, ob ich das registrieren kann? Ich habe einige Posts gefunden, die über das Hochladen der DLL und die Registrierung beim Start sprechen, aber der Artikel scheint zu fehlen. Ist das möglich?Azure-COM-Objekte

Antwort

2

Sie können kein COM-Objekt auf einer Azure-Website registrieren. Sie müssen zu diesem Zweck auf Webrollen aktualisieren. Die Registrierung von com-Objekt kann dann während der Startskripten passieren.

+0

Wie machst du das? Ich schaue durch das Dashboard, sehe aber nichts über Webrollen. – thecaptain0220

+1

Webrollen sind Teil der Cloud-Dienste. Sie müssen einen Cloud-Service (WebRole) im Visual Studio erstellen, das vorhandene Projekt darunter hinzufügen, die Startskript-Registrierung Ihres COM-Objekts registrieren und sicherstellen, dass nichts anderes repariert/geändert werden muss. Erwarten Sie außerdem, dass WebRoles mit mindestens 2 Servern läuft, also müssen State & Session mit diesem kompatibel sein. – Igorek

4

Ich hatte genau dieses Problem beim Registrieren von Legacy-COM-Komponenten auf Azure. Ich dokumentiert meine Methodik hier:

AspPDF and AspJPEG on Windows Azure

Igorek korrekt ist, müssen Sie eine Web-Rolle verwenden, um dies zu erreichen. Die obige Lösung basiert auf einer einzelnen Webrolle mit einem Startskript, um regsvr32 als Startaufgabe auszuführen.

Zusammenfassend gibt es im Wesentlichen zwei Teile, um dies zu erreichen. Erstellen Sie zunächst eine Batch-Datei den Befehl regsvr32 auszuführen:

chcp 1252>NUL 
regsvr32 /s .\library\my-com-class.dll 
exit /b 0 

Dann eine Startaufgabe in Ihrer ServiceDefinition.csdef Datei definieren:

<Startup> 
<Task commandLine="mybatchfile.cmd" executionContext="elevated" taskType="simple" /> 
</Startup> 

Dies wird die Kommandodatei auslösen beim Entfalten laufen.

+0

Wo in der Projektstruktur setzen Sie die cmd-Datei? Kannst du die Antwort ein wenig erweitern? Vielen Dank –