2014-07-15 10 views
5

Ich habe automatisierte Bereitstellung von ASP.NET MVC-Anwendung, die NewRelic für Performance-Profiling zu azure mit MSBuild und WebDeploy verwendet.Azure Deloyment mit und New Relic

Ich habe waws-prod-blu-001.publish.azurewebsites.windows.net:443 URL für die Bereitstellung verwendet, wie es in Publish-Profil erwähnt wurde. Außerdem stoppe ich meine Website vor der Bereitstellung und beginne danach, da NewRelic einige Protokolldateien sperrt, sodass die Bereitstellung fehlschlägt. Dies ist eine offizielle Problemumgehung, die unter in NewRelic documentation erwähnt wird.

Normalerweise dauert die Bereitstellung 2-3 Minuten. In den letzten Tagen hat die Bereitstellung jedoch mehr als 30 Minuten gedauert und ist von Zeit zu Zeit fehlgeschlagen. Ich habe ein neues Veröffentlichungsprofil heruntergeladen und festgestellt, dass die WebDeploy-URL in die KDUU-URL ({my-app} .scm.azurewebsites.net: 443) geändert wurde. Nach dem Aktualisieren der URL-Bereitstellung dauert es wie üblich 2-3 Minuten. Wenn ich jedoch die Website KUDU stoppe ist auch nicht erreichbar und ich kann keine Deployment machen.

Meine Frage ist: Wie kann ich die Bereitstellung der Azure-Website durchführen, die NewRelic über KUDU verwendet, wenn NewRelic die Website während der Bereitstellung stoppen muss und KUDU die Bereitstellung der Website erfordert. Jede andere Art der Bereitstellung ist ebenfalls akzeptabel.

Ich habe bereits versucht nächste Dinge:

1) über FTP Bereitstellen ist auch sehr, sehr langsam, da es die gleiche URL (ftps verwendet: //waws-prod-blu-001.publish.azurewebsites.windows .Netz/).

2) Restart Website vor der Bereitstellung hilft nicht. NewRelic sperrt immer noch einige Protokolldateien.

Grüße,

-Petro

+0

Das ist ein interessantes Problem, das Sie dort haben. Ich musste NewRelic ablegen, weil es die "Always On" Option nicht unterstützt und einfach nicht funktioniert hat. Wenn Sie Zugriff auf die Option "Immer aktiviert" haben, können Sie vor der Bereitstellung die Site-Konfigurationsoption "Immer ein" ändern (dies deaktiviert NewRelic), die Bereitstellung durchführen und "Immer ein" deaktivieren. Aber das ist ein Hack, also nicht als Antwort einreichen. – trailmax

+0

Fragen Sie auch die Azure-Unterstützung, warum die alte Bereitstellung langsam geworden ist. Und Support-Ticket für NewRelic, warum blockiert es Dateien und wie zu verhindern. Eine der Antworten wird Ihnen eine funktionierende Lösung geben -) – trailmax

Antwort

10

Im Azure-Portal können Sie Azure zwingen, die Profiler-DLL-Datei, indem Sie die App Einstellung COR_ENABLE_PROFILING auf 0 und das Schlagen speichern zu entladen. Dadurch wird IIS neu gestartet und die DLL wird entladen, ohne dass Benutzer einen Fehler sehen (nur eine Verzögerung beim Zugriff auf die Site). Sie können dann die Bereitstellung ausführen, die ohne das Sperrproblem fortgesetzt werden sollte. Stellen Sie sicher, dass die App-Einstellung nach der Bereitstellung auf 1 zurückgesetzt wurde.

Sie können dies auch über Azure Powershell tun.

+0

Ich bin gerade in das geraten und diese Lösung hat für mich funktioniert. Mein Fehler war: 'Web Deploy kann die Datei 'NewRelic.Collections.dll' am Ziel nicht ändern, da sie von einem externen Prozess gesperrt ist. ' –

+0

Wie Cameron konnte ich nicht bereitstellen, weil die Datei NewRelic.Collections.dll in war benutzen. Leider hat das Hinzufügen dieser App-Einstellung, das Stoppen/Starten/Neustarten des Prep-Slots keinen Unterschied gemacht. Ich musste meinen Prep-Slot löschen und neu erstellen, damit meine Bereitstellung erfolgreich war. –

0

Wir haben kürzlich eine Änderung vorgenommen, mit der Kudu weiter ausgeführt werden kann, selbst wenn Sie die Site anhalten. Der einfachste Weg, dieses Problem jetzt zu vermeiden, besteht einfach darin, die Site zu stoppen, zu veröffentlichen und die Site neu zu starten.

+2

Wie ich bereits auf Twitter erwähnt habe, wird die Sperre durch das Stoppen der Site nicht aufgehoben. Ich habe dieses Problem viele Male bei der Bereitstellung von Azure-Websites kennengelernt und es hat mich jedes Mal dazu gebracht, mir die Haare zu zerreißen. Die markierte Antwort ist die einzige Lösung, die konsequent funktioniert hat. – AdvancedREI

+0

In Verbindung stehende Diskussion: https://github.com/projectkudu/kudu/issues/1334 –

+0

Auch das Anhalten der Website funktioniert nicht immer. – Co7e

Verwandte Themen