Dynamics CRM 2011 PostUpdate陷入无限循环

时间:2015-07-01 13:28:15

标签: dynamics-crm-2011 dynamics-crm

我正在开发一个插件。当我在PostUpdate插件中更新实体时,会触发PreUpdate插件PostUpdate插件,并且它会被无限循环捕获。

如何打破无限循环?

2 个答案:

答案 0 :(得分:1)

使用Depth属性打破无限循环。

在你的插件中,检查PluginExecutionContext.Depth是否大于1,如果是,则返回。

相关代码段。

if (localContext.PluginExecutionContext.Depth > 1)
{
    return;
}

答案 1 :(得分:0)

我想补充一点,CRM插件陷入无限循环的主要原因之一是插件正在使用CRM服务来更新首先触发插件的记录。

不是使用dept属性检查递归,而是使用目标图像简单地执行CRM记录更新的更好方法。

以下帖子解决了类似的问题:crm 2011 Updating the record that fired the Plugin in post-sync and post-async stage

有些情况下这种递归是不可避免的;但通常值得理解为什么递归发生并且可以避免。