Sharepoint 2007 以编程方式更新列表项时,工作流停止响应

Sharepoint 2007 以编程方式更新列表项时,工作流停止响应,sharepoint-2007,workflow,Sharepoint 2007,Workflow,我在列表中的项目上运行工作流。工作流的OnWorkflowItemChanged活动位于While活动中。我知道工作流进入While循环,如果我通过UI更新该项,它将触发OnWorkflowItemChanged活动。但是,如果我以编程方式(通过控制台应用程序)更新该项,它不仅不会触发OnWorkflowItemChanged活动,而且也会停止通过UI响应更新 以前有人见过这个吗?是否有方法以编程方式更新列表项,并使工作流既响应事件,又继续响应未来事件 编辑:如果我使用Lists web服务来更

我在列表中的项目上运行工作流。工作流的OnWorkflowItemChanged活动位于While活动中。我知道工作流进入While循环,如果我通过UI更新该项,它将触发OnWorkflowItemChanged活动。但是,如果我以编程方式(通过控制台应用程序)更新该项,它不仅不会触发OnWorkflowItemChanged活动,而且也会停止通过UI响应更新

以前有人见过这个吗?是否有方法以编程方式更新列表项,并使工作流既响应事件,又继续响应未来事件


编辑:如果我使用Lists web服务来更新项目,效果很好。如果我使用对象模型,为什么会出现问题?

我知道当通过事件接收器中的对象模型更新列表项时,您可以调用SPEventReceiverBase.DisableEventFireing()等。您是否尝试过这样做,或者是否有类似的工作流


这里有一个黑客程序,它可以在没有从事件接收器内部触发的更新上禁用事件触发:

是的,我同意问题是事件根本没有触发。我注意到,如果您重置IIS,它将在第一次工作,但之后没有更新。

触发事件的唯一方法似乎是使用列表Web服务。

DisableEventFireing()和EnableEventFireing()用于事件接收器,以防止递归调用。它们不可用于工作流或外部代码。另外,我不明白为什么调用SPListItem.Update()方法会首先禁用事件firint-它不应该这样做。添加了我想包含在上面的链接我尝试在更新之前和之后将其设置为EnableEventFireing,但它仍然不会触发事件或通过UI响应。项目[“决定1”]=“同意”;speventmanagerrapper.enableEventFireing();item.Update();speventmanagerrapper.enableEventFireing();你有两个启用,而不是一个禁用和一个启用我知道。问题不在于事件正在发生,我不希望它们发生。问题是事件没有启动,我需要它们启动。