Visual Studio 2015 Publish WebJobs Issue
使用右键单击,发布为Azure WebJob…选项在VisualStudio 2015中,作业已发布,但运行模式似乎被忽略。
在我的文件中,我有以下设置,但是发布后,该作业会在门户中持续设置为按需作业:
1 2 3 4 5 6 7 8 9 | { "$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" } |
使用Visual Studio 2015和Azure SDK for.NET 2.7
以下是发布后输出窗口中的错误错误:创建webjob计划时出错:无法从程序集"microsoft.identitymodel.clients.activedirectory.activedirectoryauthenticationexception"中加载类型"microsoft.identitymodel.clients.activedirectory,version=2.16.0.0,culture=neutral,publicKeytoken=31bf3856ad364e35"。
基于此错误,问题是必须在Visual Studio中登录到云资源管理器,才能正确安排作业。
如果您没有登录,该作业仍将发布,但是它只能按需提供。
在我的情况下,即使我已经登录到云资源管理器,我仍然会得到相同的错误。
我在编写时安装了最新的.NET版Azure SDK(vs 2015)。我必须更新我的nuget包microsoft.web.webjobs.publish,从1.0.2版更新到1.0.10版。Nuget包升级
最后,网络作业发布成功!
现在有一种更好的方法可以使用cron表达式来调度webjobs,这种方法更简单,并且可以避免这里提到的所有调度程序问题。
要使用它,请执行以下操作:
- 您的Azure Web应用程序必须在标准模式下运行,并且已启用"始终打开"。
- 在Visual Studio中创建Web作业时,请选择"按需运行"而不是"按计划运行"。
- 在webjob的根目录下创建一个
settings.job 文件。确保将copy设置为output directory='copy if new'。此文件应该包含类似这样的内容(使其在每小时的顶部运行):
{
"schedule":"0 0 * * * *"
}
有关此技术的详细信息,请参见以下链接:
https://azure.microsoft.com/en-us/documentation/articles/web-sites-create-web-jobs/createscheduledcron
http://blog.amitaple.com/post/2015/06/scheduling-azure-webjobs/
部署Visual Studio时,请检查"输出"窗口。您应该看到它构建了您的项目,然后它似乎已经完成了。大约30-90秒后,您将看到部署的调度部分可能发生的任何错误。您还将在"Azure应用程序服务活动"窗口中看到它们,该窗口将为您提供部署的完整日志。
由于部署过程中似乎没有发生任何事情,所以很容易错过任何可能发生的错误消息。如果您看到错误,请将其张贴在此处,我们可以进一步调试。谢谢。