0

Ich habe eine neue ASP.NET Core Web Application erstellt. Ich benutze TFS (2015 Update 2) MS Build-Prozess zum Erstellen und Bereitstellen meiner Anwendung auf meinem Dev/QA-Server. Ich führe meinen Code mit einer Kesrel/IIS-Konfiguration auf einem Fensterserver aus.Auto-Bereitstellung mit fortlaufender Integration von .NET CORE schlägt fehl, da es die Datei 'xxx.exe' nicht ändern kann

Meine Build Schritte sind:

  1. Befehlszeile: Dotnet Wiederherstellung - meine nuget Pakete
  2. Command Line Wiederherstellungen: build Dotnet -c Dev - mein dev Profil
  3. Command Line baut: Dotnet publish --framework netcoreapp1.1 --runtime win7-x64 --output "C: _work \ dev \ svc" --konfiguration DEV --no-build
  4. Veröffentlichen Build Artifacts: von diesem Ausgabeordner in Schritt 3 zu meinem Webserver.

Problem: Das Hauptproblem ist, dass ich die neuen Kernanwendungen alle als Konsolenanwendungen laufen, so gibt es eine ‚xxx.exe‘ Datei ausgeführt wird, zusätzlich zu der w3svc.exe IIS App läuft . Wenn meine Schritte zum Erstellen von Build-Artefakten ausgeführt werden, schlägt der Prozess fehl, da die Datei "xxx.exe" verwendet wird und nicht geändert werden kann.

Soweit ich das beurteilen kann, müssen Sie die "dotnet" CLI verwenden, um Ihre CORE-Anwendungen zu erstellen und zu veröffentlichen, und Sie können die VS Build-Schritte nicht verwenden.

Ich habe versucht, meinen "dotnet publish" -Befehl direkt auf den Webserver zu zeigen, aber das hat das gleiche Problem. In meinem "dotnet publish" -Befehl zeige ich eine zu verwendende Konfiguration an (DEV). Aber selbst wenn ich DEV in VS eingerichtet habe, um einen Webdeploy durchzuführen, ignoriert der "dotnet publish" -Befehl diesen und bringt den Code entweder in einen Standard-Veröffentlichungsspeicherort oder in den Speicherort, den ich in dem Befehl angegeben habe. Das funktioniert also nicht wie das alte .net-Framework.

Mein Hosting-Team gibt mir keinen Zugriff auf Remote-Powershell-Skripts, um die IIS-Anwendungen und die Konsolenanwendung zu stoppen, und ich sehe keine anderen Build-Schritte, die zum Erstellen der CORE-Anwendung funktionieren würden.

Ich bin auf TFS 2015 Update 2. Wir werden bald auf Update 3 sein, aber ich weiß nicht, ob das mir Feature geben wird, um dies entweder zu beheben. Wenn jemand weiß, würde ich es gerne hören !!

Wenn ich IIS-App-Pools stoppe und sicherstelle, dass die Konsolenanwendung ebenfalls gestoppt wird, funktionieren meine obigen Build- und Deploy-Schritte einwandfrei, aber ich möchte die IIS-App-Pools nicht jedes Mal vor einem Build manuell stoppen müssen.

Antwort

0

Da das Beenden des IIS-Anwendungs-Pools das Problem lösen kann, können Sie versuchen, IIS Utilities zu installieren, um den Anwendungspool zu stoppen oder zu starten.

0

ASP.NET Core berücksichtigt immer noch das Vorhandensein einer Datei app_offline.htm, wenn Sie also eine Datei mit diesem Namen vor Schritt 4 auf das Ziel auf Ihrem Server kopieren können, und entfernen Sie die Datei nach Schritt 4, die Bereitstellung sollte arbeiten. Das ASP.NET Core-Modul überwacht diese Datei und beendet den Hostingprozess (die EXE-Datei).

Ich bin sicher, dass Sie Msdeploy-Aufgaben von VSTS ausführen können, und Msdeploy hat einen Parameter zum Erstellen einer app_offline.htm-Datei für Sie (obwohl ein Fehler im ASP.NET Core-Modul in Azure, wo die Datei bereitgestellt wird muss alle Kleinbuchstaben sein). Msdeploy funktioniert beim Bereitstellen einer veröffentlichten Core-Anwendung für IIS.

Verwandte Themen