Visual Studio 2015发布WebJobs问题

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应用程序服务活动"窗口中看到它们,该窗口将为您提供部署的完整日志。

由于部署过程中似乎没有发生任何事情,所以很容易错过任何可能发生的错误消息。如果您看到错误,请将其张贴在此处,我们可以进一步调试。谢谢。