2016-08-12 34 views
12

Pomyślałem, że byłoby to dość proste zadanie i jest tam sporo dokumentacji, ale nie miałem szczęścia z żadną z nich i zakładam, że jest prawie nieaktualna.Jak wdrożyć witrynę sieci Web Azure WebJob wraz z aplikacją sieci Web .NET Core przez Git?

Mam aplikację sieci web .NET Core MVC 6, którą rozwijam od pewnego czasu i muszę skonfigurować dla niej WebJob na platformie Azure. Chcę wdrożyć to razem z aplikacją przy użyciu stałego systemu wdrażania, który Azure zapewnia, że ​​aplikacja już korzysta. Zgodnie z docs Kudu to możliwe:

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

który stanowi:

ta działa zarówno podczas wdrażania bezpośrednio z Visual Studio (WebDeploy), lub poprzez git.

Odwołuje się do tego linku (https://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-deploy-webjobs/), którego próbowałem podążać bez powodzenia.

Mam najnowszą wersję programu Visual Studio 2015, .NET Core 1.0.0 & Narzędzia i zestaw Azure SDK.

Pierwszą rzeczą, która staje się widoczna, jest to, że nie mam opcji rusztowania, jak pokazano na zrzutach ekranu w dokumentach Azure i po tym, jak nie udało mi się znaleźć żadnych brakujących zależności, które próbowałem skonfigurować ręcznie, zgodnie z opisem.

Nawet po włożeniu wymagane pliki w określonych miejscach (webjobs-list.json i webjob-publish-settings.json) i konfigurując je dla mojego projektu i dodanie Microsoft.Web.WebJobs.Publish do projektu WebJob, Kudu nie znajdzie WebJob pośrednictwem systemu ciągłego wdrażania.

Próbowałem różnych podejść i odmian w oparciu o dokumentację, którą tam znalazłem, ale po prostu nie mogę jej uruchomić, a wszystkie inne pytania SO są w starym (starym) roku.

Czy ktoś wie, co robię źle? Czy jest to nadal możliwe dzięki najnowszej wersji .NET Core MVC?

+0

nie sądzę VS ma poparcie jeszcze wdrożyć WebJobs z rdzeniem aplikacje. –

+0

@DavidEbbo Następnie dokumenty powinny odzwierciedlać to, zamiast współpracowników po prostu dotykając daty na dokumentach, aby wyglądały tak, jakby były najnowsze i aktualne. Całkowicie mylący! – Jargon

+0

@DavidEbbo Jakieś aktualizacje w tej sprawie? Właśnie teraz. WebJobs Webjobs aplikacji Core Console muszą być wdrożone przez Portal i nie mogą być wdrażane wraz z projektem Asp.Net Core, jak wyjaśniono tutaj http://stackoverflow.com/questions/39958252/azure-webjob-removed-after-app -service-publish-with-autoswap – MathiasR

Odpowiedz

4

Pliki WebJobs są przechowywane w folderach "App_Data/jobs/continuous" lub "App_Data/jobs/triggered", więc jednym ze sposobów wykorzystania aplikacji sieci Web i WebJob do ręcznego kopiowania wszystkich plików WebJobs potrzebnych do te foldery podczas budowania. Myślę, że to będzie pasować, podczas gdy narzędzia VS będą aktualizowane.

Moje rozwiązanie różni się nieco od Twojego, ponieważ używam Visual Studio Team Services do budowania i udostępniania mojej aplikacji na platformę Azure, ale koncepcja jest taka sama. Możesz użyć zdarzenia budowania postów w Visual Studio, aby uruchomić skrypt, który skopiuje te pliki do folderu zadań.

Poniżej przedstawiono kroki mam skonfigurowane w VSTS zbudować definicję:

  1. Command Line zadanie: Narzędzie: DotNet Argumenty: przywrócić

  2. Visual Studio zadanie budować: Rozwiązanie: ** \ MojaAplikacja.SLN Platforma: $ (BuildPlatform) konfiguracja: $ (BuildConfiguration) Visual Studio Version: Visual Studio 2015 zadanie

  3. Linia komend: narzędzia: DotNet argumentami: publikować -c $ (BuildConfiguration)

  4. Zadanie linii poleceń: Narzędzie: DotNet Argumenty: publikują -c $ (BuildConfiguration) $ (Build.SourcesDirectory) \ src \ MyApp.Jobs \ project.json

  5. zadanie kopiowania plików (jest to podstęp): Folder Źródło: src/MyApp.Jobs/bin/$ (BuildConfiguration) /netcoreapp1.0/publish/ Zawartość: ** Folder docelowy: src/MyApp.Web/bin/$ (BuildConfiguration)/netcoreapp1 .0/publish/App_Data/jobs/triggered/MyJobName/

  6. Archive Files zadanie: folderu głównej (lub plik) do archiwizacji: src/MyApp.Web/bin/$ (BuildConfiguration) /netcoreapp1.0/publish/ prefiks nazwy folderu root archiwum ścieżce: niezaznaczone typ Archive: plik zip Archiwum utworzyć: website.zip zastąpić istniejące archiwum: sprawdzane

    zadanie
  7. skopiować pliki: folderu Źródło: Zawartość: **/* zip Folder docelowy. $ (Build.ArtifactStagingDirectory)

  8. Opublikuj Budowanie zadania artefakty: Ścieżka publikują: $ (Build.ArtifactStagingDirectory) Artefakt Nazwa: spadek Artifact typ: Server

+0

Awesome! Po kilku godzinach bicia mojej głowy zapisałeś mój projekt =] –