2015-07-23 29 views
9

Przy użyciu opcji Publikuj jako Azure WebJob ... w VisualStudio 2015 zadanie jest publikowane, ale tryb runMode wydaje się być ignorowany.Visual Studio 2015 Publikuj WebJobs Wydanie

W moim pliku, mam następujące ustawienia, jednak praca jest stale ustawiony na On Demand pracy w portalu po opublikowaniu:

{ 
    "$schema": "http://schemastore.org/schemas/json/webjob-publish-settings.json", 
    "webJobName": "MyJob", 
    "startTime": "2015-07-21T00:30:00-08:00", 
    "endTime": null, 
    "jobRecurrenceFrequency": "Day", 
    "interval": 1, 
    "runMode": "Scheduled" 
} 

użyciu programu Visual Studio 2015 z Azure SDK dla .NET 2.7

Oto błąd w oknach wyjściowych po opublikowaniu błąd: wystąpił błąd podczas tworzenia harmonogramu WebJob: nie można załadować typu „Microsoft.IdentityModel.Clients.ActiveDirectory.ActiveDirectoryAuthenticationException” z zespołem „Microsoft.IdentityModel.Clients. ActiveDirectory, wersja = 2.16.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 '.

Odpowiedz

15

W oparciu o błąd, problem polega na tym, że użytkownik musi być zalogowany do programu Cloud Explorer w programie Visual Studio, aby zadanie zostało prawidłowo zaplanowane.

Zadanie będzie nadal publikowane, jeśli użytkownik nie jest zalogowany, ale będzie dostępny tylko w systemie OnDemand.

+2

+1 Okay, muszę zapytać. Jaka część "Nie można załadować typu" Microsoft.IdentityModel.Clients.ActiveDirectory.ActiveDirectoryAuthenticationException "z zespołu" Microsoft.IdentityModel.Clients.ActiveDirectory, wersja = 2.16.0.0, Culture = neutralny, PublicKeyToken = 31bf3856ad364e35 "" krzyczał "o tak, po prostu otwórz Cloud Explorer i zaloguj się "do ciebie? To zadziałało, ale jestem ciekawy (jak jestem pewien, że inni też), jak nawiązałeś połączenie? – nsturdivant

+2

Myślałem o tym, że jest to problem z uwierzytelnianiem, więc zacząłem od patrzenia na miejsca w aplikacji, w których rzeczywiście uwierzytelniasz się - uwierzytelnione w Cloud Explorer, a reszta to historia. – Pat

+1

To nie działa dla mnie .. Ten sam błąd, ten sam problem, ale trwa nadal, mimo że jestem zalogowany do Cloud Explorer (jak w, widzę moją aplikację sieciową itp. Więc domyślam się, że jestem zalogowany) – Noppey

0

Podczas wdrażania w Visual Studio, sprawdź okno wyjściowe. Powinieneś zobaczyć, że buduje twój projekt, a potem wydaje się, że skończył. Po około 30-90 sekundach później pojawią się błędy, które mogą wystąpić w części planowania wdrożenia. Zobaczysz je również w oknie "Aktywność usługi aplikacji Azure", które wyświetli pełny dziennik wdrożenia.

Ponieważ opóźnienie w miejscu, w którym wydaje się, że nic się nie dzieje, można łatwo przeoczyć każdy komunikat o błędzie, który może wystąpić. Jeśli zobaczysz błąd, opublikuj go tutaj i możemy dalej debugować. Dzięki.

+0

Oto dane wyjściowe. Nie ma znaczenia, jak długo czekam, to jest to samo. Po .. Publikowanie powiodło się. Jest to jedyny błąd: D: \ projects \ BASEE \ packages \ Microsoft.Web.WebJobs.Publish.1.0.2 \ tools \ webjobs.console.targets (110,5): Błąd: Wystąpił błąd podczas tworzenia harmonogram WebJob: Nie można załadować typu "Microsoft.IdentityModel.Clients.ActiveDirectory.ActiveDirectoryAuthenticationException" z zespołu "Microsoft.IdentityModel.Clients.ActiveDirectory, wersja = 2.16.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 '. – Pat

+0

Czy próbowałeś dodać tę swoistą wersję przez nuget do swojego projektu? –

+2

Problem polega na tym, że musisz zalogować się do eksploratora chmur w visual studio. To rozwiązuje problem. – Pat

9

Istnieje teraz lepszy sposób planowania WebJobów za pomocą wyrażeń CRON, co jest prostsze i omija wszystkie wymienione tutaj problemy związane z harmonogramem.

Aby go użyć, należy wykonać następujące czynności:

  • swojej Azure Web App musi być uruchomiony w trybie standardowym i mieć 'Always On' włączone.
  • Podczas tworzenia WebJob w Visual Studio, wybierz "Uruchom na żądanie" zamiast "Uruchom na planie".
  • Utwórz plik settings.job w katalogu głównym WebJob. Należy ustawić opcję Kopiuj do katalogu wyjściowego = "Kopiuj, jeśli jest nowsza". Plik ten powinien zawierać coś takiego (co sprawia, że ​​prowadzony na górze każdej godziny):

{ "schedule": "0 0 * * * *" }

Aby uzyskać więcej informacji na temat tej techniki można znaleźć na następujących stronach:

https://azure.microsoft.com/en-us/documentation/articles/web-sites-create-web-jobs/#CreateScheduledCRON

http://blog.amitapple.com/post/2015/06/scheduling-azure-webjobs/

+0

To sprawia, że ​​życie dzięki pracy w sieci jest o wiele łatwiejsze, dzięki! – Noppey

+0

Witaj David, jak mogę zmodernizować istniejący zaplanowany wjob. tj. co zrobić z moimi ustawieniami publikacji-json? – GGleGrand

+0

Po prostu zrób to jak WebJobs na żądanie. na przykład zobacz [tutaj] (https://github.com/davidebbo-test/WebAppWithWebJobsVS/blob/5471db17dc3ba9ccfc632dde3feecdf69c5cf853/MyTriggeredWebJob/Properties/webjob-publish-settings.json). –

10

w moim przypadku choć jestem już zalogowany w chmurze Explorer wciąż otrzymuję ten sam erro r.

Mam najnowszy pakiet Azure SDK dla .NET (VS 2015) zainstalowany po napisaniu. Musiałem zaktualizować mój pakiet NuGet Microsoft.Web.WebJobs.Publish od wersji 1.0.2 do najnowszej wersji, która jest 1.0.10. NuGet Package Upgrade

W końcu zadanie sieciowe zostało pomyślnie opublikowane!

+0

Dzięki - to naprawiło to również dla mnie. –

+0

Należy również pamiętać, że w przypadku tego rozwiązania wszystkie projekty odnoszące się do tego pakietu NuGet powinny zostać zaktualizowane (obecna wersja 1.0.11), lub nadal można uzyskać błąd. – Pat