Visual Studio 2015 年发布 WebJobs 问题

Visual Studio 2015 Publish WebJobs Issue

使用 VisualStudio 2015 中的右键单击“发布为 Azure WebJob...”选项,作业已发布,但运行模式似乎被忽略了。

在我的文件中,我有以下设置,但是发布后该作业在门户中持续设置为按需作业:

{
  "$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 与适用于 .NET 2.7 的 Azure SDK 一起使用

这是发布后输出 windows 中的错误 错误:创建 WebJob 计划时出错:无法从程序集 'Microsoft.IdentityModel.Clients.ActiveDirectory, Version=2.16.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

加载类型 'Microsoft.IdentityModel.Clients.ActiveDirectory.ActiveDirectoryAuthenticationException'

为 Visual Studio 部署时,检查输出 Window。您应该看到它构建了您的项目,然后它似乎已经完成了。大约 30-90 秒后,您将看到部署的调度部分可能出现的任何错误。您还将在 "Azure App Service Activity" window 中看到它们,这将为您提供完整的部署日志。

由于在部署时似乎没有发生任何事情的相当长的延迟,因此很容易错过任何可能发生的错误消息。如果您看到错误,post 在这里,我们可以进一步调试。谢谢。

根据错误,问题是您必须在 Visual Studio 内登录 Cloud Explorer 才能正确安排作业。

如果您未登录,该职位仍会发布,但它只会按需提供。

现在有一种使用 CRON 表达式调度 WebJob 的更好方法,它更简单并且避免了这里提到的所有调度程序问题。

要使用它,请执行以下操作:

  • 您的 Azure Web 应用程序必须 运行 处于标准模式,并且已启用 'Always On'。
  • 在 Visual Studio 中创建 WebJob 时,选择 'Run on Demand' 而不是 'Run on a Schedule'。
  • 在 WebJob 的根目录下创建一个 settings.job 文件。 确保设置复制到输出目录='Copy if newer'。这个文件应该包含这样的东西(这使得它 运行 在每个小时的顶部):

{ "schedule": "0 0 * * * *" }

有关此技术的更多信息,请参阅以下链接:

https://azure.microsoft.com/en-us/documentation/articles/web-sites-create-web-jobs/#CreateScheduledCRON

http://blog.amitapple.com/post/2015/06/scheduling-azure-webjobs/

就我而言,即使我已经登录 Cloud Explorer,我仍然遇到同样的错误。

在撰写本文时,我安装了最新的 Azure SDK for .NET (VS 2015)。 我必须将我的 NuGet 包 Microsoft.Web.WebJobs.Publish 从版本 1.0.2 更新到最新版本 1.0.10。 NuGet Package Upgrade

然后web job终于发布成功了!