我使用DevOps将连续的WebJobs部署到了我现有的Azure WebApp。它已启动并正在运行。
当我尝试在Azure Web前端中停止webJob时,它不起作用。 因此,我使用了stop Command of the Azure WebApp API。
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/continuouswebjobs/{webJobName}/stop?api-version=2016-08-01
令人惊讶的是,此调用返回了404错误。
但是,当我执行Get Continuous WebJob Command时,它将返回有关webJob的所有信息,这意味着可以找到它。
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/continuouswebjobs/{webJobName}?api-version=2016-08-01
我也尝试使用Kudu API。
POST /api/continuouswebjobs/{job name}/stop
但是,stop命令产生了相同的404响应消息,而get命令产生了肯定的结果,即WebJob处于“正在运行”状态。
GET /api/continuouswebjobs/{job name}
此行为是否有任何原因?使用上述发布请求,如何启动/停止webJob。
答案 0 :(得分:2)
事实证明,我的部署方式是问题的根源。
丹尼尔斯对此question的回答对我很有帮助。
基本上,您需要在WebApp内创建一个虚拟应用程序,然后将WebJob从Azure Devops部署到该应用程序。
以这种方式完成操作后,您就可以使用上述所有API成功启动/停止连续的webjob。
答案 1 :(得分:0)
根据我在这里阅读的内容,接受的答案的链接主题(值得阅读!)以及我自己的配置问题,该问题仅涉及我们项目中的一个项目,我注意到在我们的案例中,导致404错误的webjob是没有使用相同的输出目录发布,而是使用noti
而不是$(Build.ArtifactStagingDirectory)/My.Api/app_data/jobs/Continuous/MyWebjob
因此,在我们的案例中,我们不使用虚拟应用程序。
答案 2 :(得分:-1)
您如何停止前端的webjob?
以及用于停止连续网络作业的API,您可以尝试使用
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/continuouswebjobs/{webJobName}/stop?api-version=2016-08-01
更多信息,您可以参考以下文档:Stop Continuous Web Job