2016-08-12 6 views
12

Ich dachte, das wäre eine ziemlich einfache Aufgabe und es gibt eine ganze Menge Dokumentation da draußen, aber ich hatte kein Glück mit irgendetwas davon und nehme an, dass es ziemlich veraltet ist.Wie stelle ich einen Azure WebJob zusammen mit einer .NET Core Web App über Git bereit?

Ich habe .NET Core MVC 6 Web App, die ich für eine Weile entwickelt habe und muss dafür einen WebJob auf Azure einrichten. Ich möchte dies zusammen mit der App mithilfe des Continuous Deployment Systems von Azure bereitstellen, das die App bereits verwendet. Laut Kudu docs ist es möglich:

https://github.com/projectkudu/kudu/wiki/Web-Jobs#deploying-net-console-webjobs-alongside-an-aspnet-application

in dem es heißt:

Dies funktioniert sowohl bei direkt aus Visual Studio (WebDeploy) oder via git bereitstellen.

Es verweist auf diesen Link (https://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-deploy-webjobs/), die ich versucht habe, ohne Erfolg zu folgen.

Ich habe die neueste Version von Visual Studio 2015, .NET Core 1.0.0 & Tools und das Azure SDK.

Als erstes fällt auf, dass ich nicht über die Scaffolding-Optionen verfüge, wie in den Screenshots in den Azure-Dokumenten gezeigt, und nachdem ich keine fehlenden Abhängigkeiten gefunden habe, habe ich versucht, sie wie beschrieben manuell einzurichten.

Auch nach den erforderlichen Dateien an den Standorten setzten angegeben (webjobs-list.json und webjob-publish-settings.json) und sie für mein Projekt zu konfigurieren und das Hinzufügen von Microsoft.Web.WebJobs.Publish zum WebJob Projekt hat Kudu nicht die WebJob über das kontinuierliche Einsatzsystem finden.

Ich habe verschiedene Ansätze und Variationen ausprobiert, basierend auf der Dokumentation, die ich dort gefunden habe, aber ich kann es einfach nicht funktionieren lassen und alle anderen SO-Fragen sind Jahr (e) alt.

Weiß jemand, was ich falsch mache? Ist das mit der neuesten Version von .NET Core MVC überhaupt noch möglich?

+0

ich glaube nicht, VS die Unterstützung noch hat WebJobs mit Core bereitstellen Apps. –

+0

@DavidEbbo Dann sollten die Dokumente dies widerspiegeln, anstatt dass die Mitwirkenden nur das Datum in der Dokumentation berühren, damit es so erscheint, als wären sie aktuell und aktuell. Völlig irreführend! – Jargon

+0

@DavidEbbo Irgendwelche Updates zu diesem Thema? Derzeit müssen .Net Core Console App-WebJobs über das Portal bereitgestellt werden und können nicht zusammen mit einem Asp.Net Core-Projekt bereitgestellt werden, wie hier beschrieben http://stackoverflow.com/questions/39958252/azure-webjob-removed-after-app -service-publish-with-autoswap – MathiasR

Antwort

4

Die WebJobs-Dateien werden in den Ordnern "App_Data/jobs/continuous" oder "App_Data/jobs/triggered" gespeichert. Eine Möglichkeit, Web App und WebJob zu verwenden, besteht darin, alle erforderlichen WebJob-Dateien manuell zu kopieren diese Ordner während der Bauzeit. Ich denke, das passt, während VS Tooling aktualisiert wird.

Meine Lösung unterscheidet sich ein wenig von Ihrer, da ich Visual Studio Team Services zum Erstellen und Freigeben meiner App für Azure verwende, aber das Konzept ist dasselbe. Sie können ein Post-Build-Ereignis in Visual Studio verwenden, um ein Skript auszuführen, das diese Dateien in den Ordner der Jobs kopiert.

Im Folgenden sind die Schritte, die ich in VSTS so konfiguriert haben, bauen Definition:

  1. Command Line Aufgabe: Tool: Dotnet Argumente:

  2. Visual Studio Build-Aufgabe wieder her: Lösung: ** \ MyApp.sln Plattform: $ (BuildPlatform) Konfiguration: $ (BuildConfiguration) Visual Studio Version: Visual Studio 2015

  3. Command Line Aufgabe: Tool: Dotnet Argumente: veröffentlichen -c $ (BuildConfiguration)

  4. Befehlszeilenaufgabe: Tool: Dotnet Argumente: veröffentlichen -c $ (BuildConfiguration) $ (Build.SourcesDirectory) \ src \ MyApp.Jobs \ project.json

  5. Dateien kopieren Aufgabe (das ist der Trick): Quellordner: src/MyApp.Jobs/bin/$ (BuildConfiguration) /netcoreapp1.0/publish/ Inhalt: ** Zielordner: src/MyApp.Web/bin/$ (BuildConfiguration)/netcoreapp1 .0/publish/App_Data/jobs/ausgelöst/MyJobName/

  6. Archivdateien Aufgabe: Root-Ordner (oder Datei) zu archivieren: src/MyApp.Web/bin/$ (BuildConfiguration) /netcoreapp1.0/publish/ Präfixwurzel Ordnernamen Archivpfad: ungeprüft Archivtyp: zip Archiv-Datei zu erstellen: website.zip ersetzt bestehendes Archiv: geprüft

  7. Dateien kopieren Aufgabe: Quellordner: Inhalt: **/* zip Zielordner. $ (Build.ArtifactStagingDirectory)

  8. Veröffentlichen Artefakte Aufgabe Körperbau: Pfad veröffentlichen: $ (Build.ArtifactStagingDirectory) Artifact Name: Tropfen Artifact Typ: Server

+0

Awesome! Nach stundenlangem Kopfweh hast du mein Projekt gerettet =] –

Verwandte Themen