Планировщику Azure не удается запустить веб-задание OnDemand, опубликованное с помощью WebApp
Некоторое время назад я использовал Visual Studio (2015) для создания WebApp, консольного приложения и связывания этого консольного приложения как OnDemand WebJob с WebApp. Я опубликовал все в Azure, и веб-сайт, WebJob и планировщик заданий работали отлично.
На прошлой неделе я заметил, что WebJob больше не работает. Веб-сайт постоянно развивается, поэтому я не уверен, связано ли это с изменением кода, который мы применили, или с чем-то в Azure.
Что бы я ни пытался (включая полное удаление задания, расписания и папок в App_Data в веб-приложении), когда я публикую WebApp из VS, веб-задание воссоздается, но планировщик завершается с ошибкой, описанной ниже.
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
Любая подсказка, что может вызвать эту проблему или какую дополнительную информацию я могу собрать, чтобы отследить фактическую проблему?
Спасибо Эрик
3 ответа
Мы внесли изменения в NuJet, публикующие WebJobs, и выпустили обновление. Это обновление устраняет проблему с заголовком аутентификации планировщика. После того, как вы обновите NuGet для публикации до версии 1.0.11, эта проблема будет решена.
https://www.nuget.org/packages/Microsoft.Web.WebJobs.Publish/1.0.11
Это означает, что ваш http-запрос к mysite.scm.azurewebsites.net (где вас ожидает веб-работа) не имеет правильных кредитов на запрос.
Перейдите на ваш portal.azure.com и откройте запланированное веб-задание в коллекции планировщика. В плитке действий вы видите, использует ли она какую-либо аутентификацию? Если это не так, выберите Обычная аутентификация. Здесь вам нужно ввести имя пользователя и pw вашего веб-приложения. Вы можете получить оба этих значения из профиля публикации веб-приложения. Обратитесь к этому сообщению, если вы не знаете, где это.
У меня есть эта проблема, и я нашел решение для нее.
По умолчанию, если в вашей коллекции заданий больше, чем веб-задание. Вы обнаружите, что заголовок аутентификации был добавлен только к первому заданию, но не к другим. Таким образом, вам нужно скопировать эти два заголовка в другие задания, и это исправит проблему, с помощью которой scueduler может запускать запланированное задание в Azure.
Я разместил подробное решение о том, как это исправить:
http://www.mostafaelzoghbi.com/2016/02/azure-scheduler-fails-to-trigger.html