2015-05-22 7 views
8

Ich habe kürzlich eine neue Build-Konfiguration in Teamcity eingerichtet, um ein Cloud Services-Paket für Azure zu erstellen. Nachdem ich das Projekt mit Msbuild erstellt habe, rufe ich cspack.exe (Azure SDK 2.2) auf, um das Paket zu erstellen.CSPack verschlüsselt den Verzeichnisnamen mit Leerzeichen an% 20

Dies ist der Befehl, den ich bin mit:

cspack.exe "ServiceDefinition.csdef" 
"/out:%Package.RelativePath%package.cspkg" 
"/role:MyWebRole;%teamcity.build.checkoutDir%\t\%build.number%;bin\MyProject.Web.dll" 
"/sites:MyWebRole;MyWebSite;%teamcity.build.checkoutDir%\t\%build.number%" 

Dies schafft eine cspkg die richtige zu sein scheint. Ich habe dieses Paket in den Azure-Speicher hochgeladen und ein Update der Webrolle ausgeführt. Aber nach einer Weile zeigt es einen Fehler beim Ausführen dieser Startaufgaben. Danach kommt eine Schleife zum Neustart der WebRole.

Bei der Suche nach einer möglichen Ursache, habe ich bemerkt, dass eines der Verzeichnisse in meinem Approx einen Platz in meinem ursprünglichen Projekt enthält, aber in dem Paket nach% 20 codiert. Nach dem Ändern des Verzeichnisnamens in den ursprünglichen Namen und dem erneuten Aktualisieren der Webrolle verschwanden die Probleme.

Kennt jemand dieses Problem und kann mir in die richtige Richtung zeigen, das Problem zu lösen?

+1

Ich sehe das gleiche Verhalten wie Sie, mit dem neuesten Azure SDK 2.6. Wenn Sie ein cspkg-Paket mit einer Web- oder Worker-Rolle erstellen, die ein Verzeichnis mit einem Leerzeichen enthält, wird der Speicherplatz im Paket mit% 20 codiert. Dies könnte ein Fehler in cspack.exe –

+0

sein Vielen Dank für die Reproduktion dieser! Ich werde versuchen, einen Fehlerbericht bei Microsoft zu erstellen. –

+0

hm, passiert auch für Worker Roles. Während dies in der Tat ein falsches Verhalten ist, stelle ich wirklich die Notwendigkeit, Platz in Ordner- oder Dateinamen zu haben, in Frage. Apropos, seit 2008 mit Azure zu arbeiten, mit vielen Kunden und ihren Azure-Projekten zusammengearbeitet zu haben, sind Sie die erste (die ich kenne), die auf dieses Problem trifft. Und schließlich, das berichtete Problem ist: https://github.com/Azure/azure-sdk-for-net/issues/1251 – astaykov

Antwort

0

Der% 20 geht nur in das Paket, aber nicht im Einsatz. Haben Sie RDP an die Cloud-Service-Rolle überprüft, ob der Ordnername mit dem% 20 übereinstimmt oder nicht? Weil es so aussieht, wird% 20 nur zum Paket hinzugefügt, aber beim Entpacken entfernt. Ihr Problem mit dem Neustart könnte also etwas anderes sein.

Und das gleiche gilt übrigens für alle Nicht-URI-Zeichen, einschließlich Unicode-Zeichen, die in das Paket gehen sollten. Welche wird durch die Open Packaging Conventions auferlegt.

+0

Danke für die Erklärung. Aber leider ist meine WebRole beim Onstartup mit dem% 20 im Paket ausgefallen. –

+0

Wenn Sie einen eindeutigen Beweis dafür haben - wie zum Beispiel Logs von der Rolle selbst oder Screenshots von Remote Desktops in die Instanz, geben Sie diese bitte an und das wird zum Fehlerbericht hinzugefügt. – astaykov

Verwandte Themen