Visual Studio 2015 发布 WebJobs 的问题

10
使用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"
}

使用 Visual Studio 2015 和 Azure SDK for .NET 2.7

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

4个回答

16

根据错误提示,问题在于你必须在 Visual Studio 中登录 Cloud Explorer 才能正确地安排工作。

如果你没有登录,则工作仍可以发布,但只能按需使用。


2
+1 好的,我必须问一下。在这个错误信息中,“Could not load type 'Microsoft.IdentityModel.Clients.ActiveDirectory.ActiveDirectoryAuthenticationException' from assembly 'Microsoft.IdentityModel.Clients.ActiveDirectory, Version=2.16.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'”,哪部分让你想到了“噢,好的,只需要打开Cloud Explorer并登录”?当然它起作用了,但我很好奇(我相信其他人也是),你是如何建立这种联系的? - nsturdivant
2
我认为这可能是一个身份验证问题,所以我开始查看应用程序中实际进行身份验证的位置——已经通过 Cloud Explorer 进行了身份验证,剩下的就是历史了。 - Pat
1
这对我不起作用。同样的错误,同样的问题,但它仍然存在,即使我已经登录到Cloud Explorer(也就是说,我看到我的Web应用程序等..所以我想我已经登录了)。 - Norbert Huurnink
@Noppey,你是否已经根据user1755639的回答更新了NuGet包? - Rowland Shaw

10

虽然我已经登录了Cloud Explorer,但我的情况仍然出现了相同的错误。

截至目前,我已安装了最新的Azure SDK for .NET(VS 2015)。 我不得不将NuGet包Microsoft.Web.WebJobs.Publish从版本1.0.2更新到最新版本1.0.10。 NuGet包升级

最后,Web作业成功发布了!


谢谢 - 这也解决了我的问题。 - Lucian Wischik
还要注意的是,对于这个解决方案,所有引用此 NuGet 包的项目都应该更新(当前版本为 1.0.11),否则可能会继续出现错误。 - Pat

9
现在有一种更好的使用CRON表达式进行WebJobs调度的方法,它更简单,并避免了所有在这里提到的调度程序问题。
要使用它,请执行以下操作:
- 您的Azure Web应用程序必须以标准模式运行,并启用“始终处于活动状态”。 - 在Visual Studio中创建WebJob时,选择“按需运行”而不是“按计划运行”。 - 在您的WebJob根目录下创建一个`settings.job`文件。请确保设置`Copy to 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/


这让使用 Web 工作变得更加容易,谢谢! - Norbert Huurnink
嗨,David,我该如何更新现有的定时作业?即我的发布设置 JSON 应该怎么处理? - GGleGrand
只需将其制作成按需WebJobs。例如,请参见此处 - David Ebbo

0

在使用Visual Studio进行部署时,请检查“输出窗口”。你应该能看到它正在构建你的项目,然后会似乎已经完成。大约30-90秒后,你将会看到可能发生的部署计划的任何错误。你还可以在“Azure App Service Activity”窗口中看到它们,并获得完整的部署日志。

由于在部署过程中有相当长的延迟时间什么都似乎没发生,很容易错过可能出现的任何错误消息。如果你看到错误,请在此处发布并让我们进一步调试。谢谢。


这是输出结果。无论等待多长时间都没有关系,结果都一样。 之后... 发布成功。 这是唯一的错误:D:\ projects \ BASEE \ packages \ Microsoft.Web.WebJobs.Publish.1.0.2 \ tools \ webjobs.console.targets(110,5):错误:创建WebJob计划时发生错误:无法从程序集'Microsoft.IdentityModel.Clients.ActiveDirectory,Version = 2.16.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'中加载类型'Microsoft.IdentityModel.Clients.ActiveDirectory.ActiveDirectoryAuthenticationException'。 - Pat
你尝试过通过NuGet将那个特定版本添加到你的项目中吗? - Peter
2
问题在于你必须在Visual Studio中登录到Cloud Explorer。这样就可以解决问题了。 - Pat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接