2016-01-29 34 views
5

Jakiś czas temu użyłem programu Visual Studio (2015) do utworzenia aplikacji WebApp, konsoli i łącza tę aplikację konsolową jako OnDemand WebJob z WebApp. Opublikowałem całość na platformie Azure, a strona internetowa, WebJob i zadanie harmonogramu działały idealnie.Program Azure Scheduler nie uruchamia usługi OnDemand WebJob opublikowanej za pomocą aplikacji WebApp

W zeszłym tygodniu zauważyłem, że WebJob już nie działa. Strona jest ciągle rozwijana, więc nie jestem pewien, czy wynika to ze zmiany kodu, który zastosowaliśmy, czy też z powodu czegoś na Azure.

Niezależnie od tego, co spróbuję (w tym całkowite usunięcie zadania, harmonogramu i folderów w App_Data na stronie internetowej), po opublikowaniu WebApp z VS, webjob jest odtwarzany, ale program planujący kończy się niepowodzeniem z poniższym błędem.

Http Action - Response from host 'mysite.scm.azurewebsites.net': 'Unauthorized' Response Headers: Date: Fri, 29 Jan 2016 07:02:01 GMT 
Server: Microsoft-IIS/8.0 
WWW-Authenticate: Basic realm="site" 

Body: 401 - Unauthorized: Access is denied due to invalid credentials. Server Error 

Jakąkolwiek wskazówkę, co może powodować ten problem lub jakie dodatkowe informacje mogę zebrać, aby prześledzić rzeczywisty problem?

Dzięki Erik

Odpowiedz

2

Oznacza to, że żądanie HTTP do mysite.scm.azurewebsites.net (gdzie webjob czeka) nie ma odpowiednich creds na życzenie.

Przejdź do portalu portal.azure.com, a następnie otwórz zaplanowane zadanie sieciowe w kolekcji harmonogramów. Czy na kafelku akcji widać, czy korzysta z dowolnego uwierzytelniania? Jeśli nie, wybierz opcję Podstawowa autoryzacja. Tutaj musisz podać nazwę użytkownika i pw swojej aplikacji internetowej. Możesz uzyskać obie te wartości z profilu publikowania aplikacji internetowej. Zapoznaj się z tym post, jeśli nie wiesz, gdzie to jest.

+1

Dzięki za podpowiedź w dobrym kierunku. Próbowałem dodać dane uwierzytelniające w portalu Azure i dostałem błąd, że kolekcja bezpłatnych zadań nie może zawierać zadań z uwierzytelnianiem. Ostatecznie zdecydowałem się utworzyć proste zadanie wsadowe, które wyzwala webjob z postem http, dopóki nie będę miał dostępnego budżetu, aby uaktualnić kolekcję zadań programu planującego do wersji Standard lub Premium. – Erik123

+0

Tak, miałem ten sam problem, w którym korzystałem z darmowego zbierania ofert pracy. Po uaktualnieniu powinno działać. – Haymaker87

+0

Występuje ten sam problem, ale nie chcę uaktualniać do płatnych wersji dla webmasterów! Czy istnieje inny sposób rozwiązania tego problemu? – Farlop

0

Mam ten problem i znalazłem poprawkę dla niego.

Domyślnie, jeśli masz więcej niż webjob w zbiorze zadań. Przekonasz się, że nagłówek autoryzacji został dodany tylko do pierwszego zadania, ale nie do innych. Więc musisz skopiować te dwa nagłówki do innych zadań i to naprawia bot scueduler, który może uruchomić zaplanowane zadanie na Azure.

napisałem szczegółowe rozwiązania, w jaki sposób rozwiązać ten problem:

http://www.mostafaelzoghbi.com/2016/02/azure-scheduler-fails-to-trigger.html

3

Zrobiliśmy dopracowujemy WebJobs publikujących Nuget i wydała aktualizację do niego. Ta aktualizacja rozwiązuje problem nagłówka auth programu planującego. Po zaktualizowaniu pliku NuGet do wersji 1.0.11 problem zostanie rozwiązany.

https://www.nuget.org/packages/Microsoft.Web.WebJobs.Publish/1.0.11

+0

Miej lot. Dobra robota, zepsułeś coś, wkurzyłeś mnie i wciąż udaje mi się dostać stackoverflow karma ... – Skarsnik

+0

, a potem naprawiliśmy to. Mamy na myśli trzy zespoły. nikt nie może naprawić ani złamać czegoś tak masywnego. –

+0

Również na fyi - wprowadziliśmy kilka ogromnych ulepszeń do tego całego doświadczenia. Znowu przepraszam i mam nadzieję, że aktualizacja Cię naprawi.Jeśli nie skontaktujesz się bezpośrednio, postaramy się przez to przejść. –