我们的实时环境中运行的 WebJob 有一个错误,我已经识别了该错误并修复了它,我可以在我们的开发环境中验证这一点。我将我的 WebJob 作为“Azure WebJob”发布到我们的实时环境中,但错误仍然存在。更令人困惑的是,该错误现在有时会发生。因此,由于某种原因,旧代码有时会在某处运行。
有人可以帮我理解这一点吗?
最佳答案
我也遇到了类似的问题。我们使用 Azure 中的阶段环境进行部署,结果发现“旧”WebJobs(使用旧版本的 Entity Framework 模型运行代码)仍在队列上运行。然后,这些作业会获取消息并使用它们。更糟糕的是,异常在 try catch 中被消耗,并且 WebJob 的状态为成功。
检查您是否有阶段环境(将 -stage 添加到 Web 应用程序名称),如果有,请进入 Azure 管理门户并停止它们。
注意,仅停止 Web 应用程序是不够的,您必须直接停止 WebJobs。这是在“设置”->“WebJobs”下完成的(在新门户中),然后右键单击 WebJobs 名称并选择“停止”。
关于运行旧代码的 Azure WebJob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32718444/