ProblemTFS CI Azure Web App (App Service) nicht Sperren aufgrund Datei erstellen (msvcr100.dll)
ein Bereitstellungsfehler bekommen, wenn sie einem Azure Web App von TFS CI veröffentlichen möchten. Eine Datei ist gesperrt und verhindert, dass der Build aktualisiert wird.
Symptome
- Publishing manuell (Web Deploy in Visual Studio veröffentlicht) gelingt es in der Regel.
- Das Stoppen der Web App und des Publizierens ermöglicht den Erfolg, jedoch wird dadurch der CI-Punkt vereitelt, wenn die Webanwendung jedes Mal angehalten und gestartet werden muss.
- CI veröffentlichen in Web-Rollen und Worker-Rollen scheinen dieses Problem nicht zu haben, wir bekommen es nur auf die Veröffentlichung in Web Apps (früher Websites, der aktuelle Azure Portal Begriff ist jetzt App Service).
- Nur das Publizieren von einem CI-Build über TFS schlägt auf diese Weise konsistent fehl.
Fehler
Web Deployment-Task fehlgeschlagen. (Web Deploy kann die Datei 'msvcr100.dll' nicht am Ziel ändern, da sie durch einen externen Prozess gesperrt ist. Um den Veröffentlichungsvorgang erfolgreich auszuführen, müssen Sie entweder Ihre Anwendung neu starten, um die Sperre aufzuheben. oder verwenden den Handler AppOffline Regel für .Net-Anwendungen auf Ihrem Versuch nächsten veröffentlichen Erfahren Sie mehr unter:.. http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE)
die Informationen auf den Link nicht sehr hilfreich ist.
ERROR_FILE_IN_USE Diagnose - Eine Zieldatei nicht überschrieben oder gelöscht werden kann, da es zur Zeit in Gebrauch ist. Lösung - Stellen Sie sicher, dass die Zieldatei vor der Synchronisierung nicht verwendet wird. Wenn Sie Inhalte mit einer gehosteten Website synchronisieren, die auf IIS 7 oder höher gehostet wird (mithilfe der AppHostConfig, iisApp oder contentPath-Anbieter), können Sie die Anwendung während der -Synchronisierung offline schalten, indem Sie die appOffline-Regel aktivieren.
Versuchte Auflösungen
- Wir New Relic wurden mit - haben seit entfernt New Relic und dieses Problem weiterhin besteht. Die Binärdatei scheint eine Microsoft-Bibliothek zu sein, aber es ist unklar, wie sie für die Anwendung relevant ist (sie wird nicht referenziert).
- Einige andere SO-Fragen haben ähnliche Probleme mit der Veröffentlichung behoben, aber keine davon bezieht sich auf dieses Problem von TFS CI.
- Eine Antwort in der obigen Frage schlägt mit der EnableMSDeployAppOffline Konfiguration im Profil veröffentlichen, und das Hinzufügen dieser Konfiguration funktioniert OK für eine Veröffentlichungs manuell aus VS zu tun, aber es doesn‘ t Behebung des Problems bei der automatischen Veröffentlichung von TFS/CI.
bearbeiten
How to take web app offline while publishing? beschäftigt sich mit der App offline nehmen die EnableMSDeployAppOffline Konfiguration mit - leider ist diese Konfiguration scheint nur dann unterstützt werden, wenn WebDeploy durch Visual Studio (nicht CI) zu tun.
Haben Sie eine Lösung für diese finden? –
Keine Lösung gefunden, derzeit veröffentlichen wir dieses Projekt direkt von VS. Zum Glück befindet sich diese Website außerhalb unseres Hauptprodukt-Build-Zyklus, aber es bedeutet, dass wir unseren CI-Prozess überhaupt nicht nutzen können. Es hindert uns jedoch daran, unser Hauptprodukt vom Cloud-Service zum App-Service zu verlagern. –
Das ist zum Kotzen, ich habe versucht, CI mit VSTS einrichten, aber ich bekomme diesen Fehler, und manuell Neustart der App macht keinen Sinn, soweit CI geht –