我在publishItem pipline中有一个管道处理器,用于检查特定类型的特定条件(如果是item)。它已经工作了一段时间,但我最近刚刚开始看到网站发布失败,因为空引用错误。
在我的代码中发现我的item对象为null。这就是我在处理器中获取项目的方式:
Item sourceItem = context.PublishHelper.GetSourceItem(context.ItemId);
我没有检查sourceItem是否为null,所以这是一个bug,我通过在继续之前检查null来修复。这解决了错误。
然而,我对这是怎么回事感到困惑。 context.ItemId有一个GUID,但GetSourceItem返回null。如果我在Sitecore中搜索GUID,我得不到任何结果。 Sitecore如何尝试发布不存在的项目?
这是在开发服务器上,大约在这个时候,我们正在构建一些新的模板并创建和删除了几个模板,所以我想知道这些项目是否被删除了。