Visual Studio 2015发布WebJobs问题

Pat*_*Pat 9 azure-webjobs visual-studio-2015

使用VisualStudio 2015中的右键单击"发布为Azure WebJob ..."选项,即可发布作业,但似乎忽略了runMode.

在我的文件中,我有以下设置,但是在发布后,作业在门户网站中不断设置为按需作业:

{
  "$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"
}
Run Code Online (Sandbox Code Playgroud)

将Visual Studio 2015与Azure SDK for .NET 2.7一起使用

以下是发布后输出窗口中的错误错误:创建WebJob计划时发生错误:无法从程序集'Microsoft.IdentityModel.Clients.ActiveDirectory,Version = 2.16加载类型'Microsoft.IdentityModel.Clients.ActiveDirectory.ActiveDirectoryAuthenticationException' .0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'.

Pat*_*Pat 15

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

如果您未登录,该作业仍将发布,但它只能在OnDemand上使用.

  • +1好的,我不得不问.从程序集'Microsoft.IdentityModel.Clients.ActiveDirectory,Version = 2.16.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'"无法加载类型'Microsoft.IdentityModel.Clients.ActiveDirectory.ActiveDirectoryAuthenticationException'的哪一部分"尖叫"哦是的,只需打开Cloud Explorer并登录"给你?当然,它很有用,但我很好奇(因为我也确定其他人也是如此)关于你如何建立联系? (2认同)
  • 我认为这是一个身份验证问题,所以刚开始查看应用程序中您实际进行身份验证的位置 - 通过Cloud Explorer进行身份验证,其余的是历史记录. (2认同)

小智 10

在我的情况下,即使我已经登录到云资源管理器,我仍然得到相同的错误.

我在编写时安装了最新的Azure SDK for .NET(VS 2015).我不得不将我的NuGet包Microsoft.Web.WebJobs.Publish从版本1.0.2更新到最新版本1.0.10. NuGet包升级

最后,网络工作成功发布!


Dav*_*bbo 9

现在有一种更好的方法来使用CRON表达式来调度WebJobs,这更简单并且避免了这里提到的所有Scheduler问题.

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

  • 您的Azure Web App必须在标准模式下运行,并且已启用"始终开启".
  • 在Visual Studio中创建WebJob时,选择"按需运行"而不是"按计划运行".
  • settings.job在WebJob的根目录下创建一个文件.确保将Copy设置为Output Directory ='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/