【问题标题】:Start and Stop of continuous Azure webJob with Azure WebApp Rest API results in 404 Error使用 Azure WebApp Rest API 启动和停止连续的 Azure webJob 导致 404 错误
【发布时间】:2019-09-18 11:03:54
【问题描述】:

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

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

GET /api/continuouswebjobs/{job name}

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

【问题讨论】:

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


    【解决方案1】:

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

    Daniels 对此question 的回答对我帮助很大。

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

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

    【讨论】:

      【解决方案2】:

      根据我在此处阅读的内容,已接受答案的链接主题(值得一读!),以及我自己的仅涉及我们项目中的一个项目的配置问题,我注意到在我们的案例中,导致 404 错误的 webjob 是未使用相同的输出目录发布,它是使用$(Build.ArtifactStagingDirectory)/My.Api/app_data/jobs/Continuous/MyWebjob 而不是$(Build.ArtifactStagingDirectory)/My.Api/app_data/jobs/Continuous/ 发布的

      所以在我们的例子中,我们不使用虚拟应用程序。

      【讨论】:

        【解决方案3】:

        你有什么办法在前端停止 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

        【讨论】:

        • 我也试过这个导致同样的404错误的命令;实际上这是我在我的问题中发布的确切链接。在前端,我尝试按“停止”按钮停止 webJob,这当然是我的第一次尝试
        • 如果这不起作用,请尝试使用这个。github.com/projectkudu/kudu/wiki/…
        • 如果您使用 Get Continuous Web Job,您的 webjob 状态是什么?
        • 状态为“正在运行”
        • 你能在azure门户中停止它吗?有一种powershell方法可以停止webjob。docs.microsoft.com/en-us/powershell/module/servicemanagement/…
        猜你喜欢
        • 1970-01-01
        • 2015-04-14
        • 1970-01-01
        • 1970-01-01
        • 2021-07-13
        • 2017-09-22
        • 1970-01-01
        • 1970-01-01
        • 2016-05-11
        相关资源
        最近更新 更多