我在使用 WWF 和外部引发的事件时遇到了 NullReference 问题。WWF 状态机与在状态机中引发事件的服务实例一起工作,以提供数据——当然——改变状态。虽然使用事件“正常”操作可以正常工作,但我遇到了一个奇怪的问题。
为了处理超时场景,我让状态初始化器使用外部超时机制在提到的服务中注册回调。在给定时间之后,回调函数运行并应在状态机中引发超时事件。事件定义如下:
event EventHandler<ExternalDataEventArgs> DeviceSysmapBrdcstTimeoutEvent;
如前所述,如果没有从超时机制中调用,则可以正常工作。ExternalDataEventArgs 是使用有效的 Guid 创建的。引发 Excetion 访问事件中的委托:
System.Workflow.Activities.EventDeliveryFailedException was unhandled by user code
Message="Event \"DeviceSysmapBrdcstTimeoutEvent\" on interface type \"...\" for instance id \"efa3da3d-8546-4fcf-bc56-bbec04df6d69\" cannot be delivered."
Source="System.Workflow.Activities"
StackTrace:
at System.Workflow.Activities.WorkflowMessageEventHandler.EventHandler(Object sender, ExternalDataEventArgs eventArgs)
任何人的想法?谢谢。