我的系统分为两部分。这两部分相互沟通 其他使用Rhino服务总线。 在Windows 7上没有问题,但是如果我在其他任何地方启动它 (WinXP,Server 2003等),出现以下异常 当我打电话给Rhino.ServiceBus.Hosting.DefaultHost.Start(..)时: 通用标签

这是Spring日志的片段形式: 通用标签

有帮助吗?

解决方案

问题已解决: 在MSMQ版本3或更低版本中(在Windows XP,Windows Server 2003等系统上),不支持子队列,因此Rhino SB使用FlatQueueStrategy来管理队列。 配置Spring对象容器时会发生问题。具体来说,在Rhino.ServiceBus.Spring.SpringBuilder类中有两个地方需要修改。

1)方法 RegisterMsmqTransport 通用标签

总是调用if语句的第二部分,因为FlatQueueStrategy没有具有参数类型为IQueueStrategy和Uri的构造函数。 但是它甚至没有没有参数的构造函数。因此,FlatQueueStrategy未在对象容器中正确注册。 此部分的修改为: 通用标签

2)方法 RegisterDefaultServices

下一个问题是方法RegisterDefaultServices: 通用标签

在将IEndpointRouter注册到对象容器中之前,调用RegisterMsmqTransport方法。 IEndpointRouter用于RegisterMsmqTransport方法(请参见1),因此方法调用 通用标签

产生一个异常。 修改如下: 通用标签

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top