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 * * * *"
}
有关此技术的更多信息,请参阅以下链接:
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终于发布成功了!
使用 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 * * * *"
}
有关此技术的更多信息,请参阅以下链接:
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终于发布成功了!