Azure WebJob 运行 旧代码

Azure WebJob running old code

我们的实时环境中的 WebJob 运行 有一个错误,我已经确定了错误并修复了它,我可以在我们的开发环境中验证这一点。我将我的 WebJob 作为 "Azure WebJob" 发布到我们的实时环境,但我仍然存在该错误。更令人困惑的是,这个错误现在有时会发生。所以出于某种原因,旧代码有时在某处 运行。

有人能帮我理解一下吗?

我遇到了类似的问题。我们在 Azure 中使用阶段环境进行部署,结果发现 "old" WebJobs(运行 代码与旧版本的 entity framework 模型)仍然 运行 在队列中.这些工作然后获取消息并使用它们。更糟糕的是,在 try catch 中消耗了异常并且 WebJob 的状态为成功。

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

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

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

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

中发布 webjobs

更多详情请见 Publishing WebJobs with Azure Pipelines