1

我正在尝试在我的 Saga 中使用 NServiceBus 3.0 ITimeoutState 和 IHandleTimeouts 功能。我有以下代码片段。以下代码在 NServiceBus.3.0.0-rc5 上运行良好,没有任何问题。但是,当我使用任何版本 > 3.0.0 更新 DLL 时,传奇超时没有按预期工作,它会引发以下警告!

2012-04-05 09:15:26,267 [Worker.5] INFO NServiceBus.Sagas.Impl.SagaDispatcherFactory [(null)] <(null)> - 找不到消息类型 SomeNameSpace.MySagaTimeout 的 saga,id 为 9496c29e- f745-4ada-8212-99e47324922b\20920。将调用SagaNotFoundHandlers

请帮我解决这个问题。

超时消息:

public class MySagaTimeout : ITimeoutState
{
    public InputMessage1 Source { get; set; }
}

传奇密码:

public class BrandMerchandisingRoot : Saga<MySagaState>,
                                          IAmStartedByMessages<InputMessage1>,
                                          IHandleTimeouts<MySagaTimeout>,
                                          IHandleMessages<MySagaTimeout>
{
      public void Handle(InputMessage1 message)
      {
        RequestUtcTimeout(5.Seconds(), new MySagaTimeout {Source = message});
      }

      public void Timeout(MySagaTimeout state)
      {
        //some other code here
      }

      public void Handle(MySagaTimeout message)
      {
         Timeout(message);
      }
}

配置:

Configure.With()
.StructureMapBuilder(ObjectFactory.Container)
.RunTimeoutManager()
.UseInMemoryTimeoutPersister()
.MsmqSubscriptionStorage()
.Sagas()
.UnicastBus();

注意:我正在使用自己的 saga 持久化器,并且我有 IFindSagas<MySagaState>.Using<MySagaTimeout>的实现

4

0 回答 0