我在Microsoft Azure中作为App Service部署的一部分运行了一堆Web作业。这些作业都是基于.NET 4.6的C#控制台应用程序。
其中一个作业取决于调度程序。我有这个webjob-publish-settings.json
文件:
{
"$schema": "http://schemastore.org/schemas/json/webjob-publish-settings.json",
"webJobName": "WebJobsRecurring",
"startTime": "2016-02-02T01:00:00+01:00",
"endTime": null,
"jobRecurrenceFrequency": "Day",
"interval": 1,
"runMode": "Scheduled"
}
当我发布与此Web作业关联的Web应用程序时,我可以在输出窗口中看到已创建计划:
9>Publish Succeeded.
9>Creating the scheduler job
9>Job schedule created
Web作业也出现在门户网站和Kudu网站上,但它从未运行过。我第一次发布时确实运行了几次,但由于网站已经更新了几次,它就无法自动运行。当我从门户网站手动触发它时,它会运行并完成而不会出错。
2月19日更新:调度程序日志错误
我根据@miracledev的建议查看了调度程序日志,我发现了这个错误:
Http Action - Response from host 'domain.scm.azurewebsites.net': 'Unauthorized'
Response Headers: Date: Fri, 19 Feb 2016 00:02:03 GMT
Server: Microsoft-IIS/8.0
WWW-Authenticate: Basic realm="site"
Body: -- snip --
可能导致此错误的原因是什么?
答案 0 :(得分:2)
(感谢@miracledev指出我正确的方向。)
似乎没有使用正确的身份验证设置创建作业,可能是因为更多的开发人员可以发布并且他们可能具有不同的发布配置文件。
目前我已将WebJob从Scheduled
更改为OnDemand
(在webjob-publish-settings.json
文件中),从而解决了这个问题。
按照David Ebbo's blog上的步骤操作,我手动连接了调度程序。请注意,在撰写本文时,这不适用于新门户,因为它似乎不接受带有用户名和密码的URL。但是,它确实可以从旧的管理门户(manage.windowsazure.com。
)开始工作现在再次成功触发WebJob。