【问题标题】:Azure WebJob running old code运行旧代码的 Azure WebJob
【发布时间】:2019-05-30 06:26:11
【问题描述】:

我们在我们的实时环境中运行的 WebJob 中有一个错误,我已经确定了这个错误并修复了它,我可以在我们的开发环境中验证这一点。我将我的 WebJob 作为“Azure WebJob”发布到我们的实时环境,但我仍然存在这个错误。为了增加混乱,现在有时会出现错误。所以由于某种原因,旧代码有时会在某个地方运行。

有人可以帮我理解吗?

【问题讨论】:

  • 这里是停止插槽中 Web 作业的 PowerShell:Stop-AzureWebsiteJob -Name $webAppName -JobName $webjobName -PassThru -Slot $destinationSlot

标签: azure azure-webjobs


【解决方案1】:

我遇到了类似的问题。我们在 Azure 中使用舞台环境进行部署,结果发现“旧”WebJobs(使用旧版本的实体框架模型运行代码)仍在队列中运行。这些作业然后获取消息并使用它们。更进一步的问题是,在 try catch 中消耗了异常,并且 WebJob 的状态为成功。

检查您是否有舞台环境(将 -stage 添加到 Webapp 名称),如果有,请进入 Azure 管理门户并停止它们。

注意,仅停止 Webapp 是不够的,您必须直接停止 WebJobs。这是在 Settings->WebJobs 下完成的(在新门户中),然后右键单击 webjobs 名称选择停止。

【讨论】:

  • 谢谢!吸取的教训,在检查一切都已启动并在未来运行后总是会停止舞台......
【解决方案2】:

我花了很长时间研究这个问题。原来我在工作时在我的 PC 上的控制台中运行了 Web 作业项目!无论我在 Azure 上做了什么,运行此 exe 并为 Web 作业使用相同的存储意味着在我的工作 PC 上运行的旧代码在 Azure 之前完成了这些作业。轻松修复:只要确保没有 exe 在 Azure 之外运行!

【讨论】:

    【解决方案3】:

    在我们的例子中,Web 应用程序被发布到物理路径 /site/www 而不是默认的 /site/wwwroot,因此 Azure Web 门户界面将 WebJobs 添加到文件夹 /site/jobs,但通过 VS 或 Azure 的 webdeploy 是仍在尝试在/site/www 中发布网络作业。

    更多详情Publishing WebJobs with Azure Pipelines

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 2020-01-09
      • 2016-12-07
      相关资源
      最近更新 更多