4

我使用 DevOps 将一个连续的 WebJobs 部署到我现有的 Azure WebApp。它已启动并正在运行。

当我尝试在 Azure Web 前端停止 webJob 时,它不起作用。所以我使用了 Azure WebApp API 的 stop 命令

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 命令时,它会返回有关 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

但是,停止命令导致相同的 404 响应消息,而 get 命令导致 WebJob 处于“运行”状态的肯定结果。

GET /api/continuouswebjobs/{job name}

这种行为有什么原因吗?如何使用上述发布请求启动/停止 webJob。

4

3 回答 3

4

事实证明,我的部署方式是问题的根源。

丹尼尔斯对这个问题的回答对我帮助很大。

基本上,您需要在您的 WebApp 中创建一个虚拟应用程序,然后从 Azure Devops 中将您的 WebJob 部署到该应用程序。

以这种方式完成后,您就可以使用上述所有 API 成功启动/停止连续网络作业。

于 2019-09-19T17:15:17.233 回答
0

According to what I read here, the accepted answer's linked subject (worth reading!), and my own configuration problem that concerned only one project of our projects, I noticed that in our case, the webjob that causes the 404 error was not published with the same output directory, it was published with $(Build.ArtifactStagingDirectory)/My.Api/app_data/jobs/Continuous/MyWebjob instead of $(Build.ArtifactStagingDirectory)/My.Api/app_data/jobs/Continuous/

So in our case we don't use virtual applications.

于 2019-11-14T07:54:06.883 回答
-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

于 2019-09-18T11:24:35.250 回答