使用Azure WebApp Rest API的连续Azure WebJob的启动和停止导致404错误

时间:2019-09-18 11:03:54

标签: azure azure-devops azure-webjobs azure-webjobssdk azure-webjobs-continuous

我使用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。

3 个答案:

答案 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