我们在我们的实时环境中运行的WebJob中有一个错误,我已经识别出错误并修复了它,我可以在我们的开发环境中进行验证。我将我的WebJob发布为" Azure WebJob"我们的现场环境,但我仍然存在的错误。为了增加混乱,现在有时会发生错误。所以出于某种原因,旧代码有时会在某个地方运行。
有人可以帮我理解这个吗?
答案 0 :(得分:6)
我有类似的问题。我们使用Azure中的阶段环境进行部署,结果发现仍在队列中运行的“旧”WebJobs(运行具有旧版本的实体框架模型的代码)。这些作业然后获取消息并使用它们。为了解决这个问题,在try catch中消耗了异常,并且WebJob的状态是成功的。
检查您是否有舞台环境(添加到Webapp名称的-stage),如果是,请进入Azure管理门户并停止它们。
注意,停止Webapp是不够的,必须直接停止WebJobs。这是在Settings-> WebJobs下完成(在新门户网站中),然后右键单击选择停止的webjobs名称。
答案 1 :(得分:1)
我花了很多时间研究这个问题。事实证明我在我的PC上的控制台中运行了Web作业项目!无论我在Azure上做了什么,运行这个exe并使用相同的存储空间进行Web作业的存在意味着在我的工作PC上运行的旧代码在Azure之前完成了工作。轻松修复:确保没有任何exes在Azure外部运行!
答案 2 :(得分:0)
在我们的案例中,Web应用程序发布到物理路径/site/www
而不是默认路径/site/wwwroot
,因此,Azure Web门户界面将WebJobs添加到文件夹/site/jobs
,但是通过VS或Azure进行的webdeploy仍在尝试在/site/www
内发布webjob。