Azure 部署:创建 Web 作业计划时出错(400 错误请求)

Azure deployment: Error while creating webjob schedule (400 Bad Request)

我在 Visual Studio 2013 年发布和 Azure 网站时收到以下错误:

12>Publish Succeeded. 12>Creating the scheduler job 12>C:\projectPath\packages\Microsoft.Web.WebJobs.Publish.1.0.7\tools\webjobs.console.targets(110,5): Error : An error occurred while creating the WebJob schedule: Response status code does not indicate success: 400 (Bad Request).

我读过另一个有类似问题的 posts:404 错误,BadRequest:不满足 ETag 指定的条件...但是 none 这些似乎是这里的问题.我已经重新安装了适用于 VS 2013 的 Microsoft Azure 工具,我的解决方案中的 webjobs.publish 包也没有用。我也检查了这个 post https://social.msdn.microsoft.com/forums/azure/en-US/d5b44e53-c4d7-48ff-a024-4bdd6eb48b79/sheduled-web-jobs-in-azure-web-site-not-configurable-in-same-region-as-web-siteand-workaround?forum=azurescheduler#d5b44e53-c4d7-48ff-a024-4bdd6eb48b79 并按照他的尝试做了,但没有解决问题。 看起来我的所有文件都已正确上传到 Azure 网站,问题在创建调度程序作业时就开始了。

奇怪的是,webjobs 已上传(更新)并且它们也正常工作,但计划的 webjobs 不在我的 Azure 管理门户的 jobcollection 列表中。我还尝试从我的网站上删除我当前的工作集和所有工作,但是当我发布该网站时,所有的网络工作都已创建,但工作集是空的。 我在 VS 中遇到了类似的问题,问题是网站的凭据已过期,但通过在 VS 中重新输入凭据解决了这个问题。知道如何解决这个问题吗?

请参阅我对 的回答,其中显示了另一种安排时间的方法,它可以使事情变得更简单并避免这种情况。

总而言之,您可以在 WebJob 文件的根目录下创建一个 settings.job 文件,其中包含一个 CRON 表达式。例如

{ "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/

正如我在问题中指出的那样,我删除了我的 webcolletion 来解决这个问题,但我没有注意到新的 collection 是在自由模式下创建的(我不知道为什么,因为我的网站是在标准模式下)。所以将 jobcollection 设置为标准模式部分解决了问题。然后我得到以下错误:

An error occurred while creating the WebJob schedule: Response status code does not indicate success: 409 (Conflict).

我访问了 Azure 门户,我看到除了一个作业之外的所有作业都已正确创建(作为计划作业)。我重置了webjob的webjob-publish-settings.json文件,我发布了,问题解决了。

我今天遇到了同样的问题,对我来说解决方案更简单。发生的事情是我在我的 webjob-publish-settings.json 上配置的 startTime 是几天前(我正在开发时)。我更改了明天的开始时间并且它起作用了。看起来当 startTime 不在未来时调度程序无法启动。希望能帮助到你。