0

我有一个处理消息的总线端点,但是我现在想在此处理程序内将另一条消息放回总线。

为此,我需要获取对总线的引用。

但是,如果我尝试以下操作:

public class ServerEndpoint: IWantToRunAtStartup
{
    public static IBus Bus { get; set; }

    public void Run()
    {
        int x = 5;

        Bus = NServiceBus.Configure.With()
            .DisableTimeoutManager()
            .Log4Net()
            .DefaultBuilder()
            .XmlSerializer()
            .MsmqTransport()
                .IsTransactional(false)
                .PurgeOnStartup(false)
            .UnicastBus()
                .ImpersonateSender(false)
            .CreateBus()
            .Start();

    }

    public void Stop()
    {
    }
}

然后我得到各种配置错误,即使我将 Unicast 和 Msmq 配置放在 app.config 中。

谁能给我指点,我希望这是一个相当简单的错误!

谢谢

邓肯

编辑:这是在服务器上。让我感到困惑的是,总线是在 web 应用程序上使用上面的代码在 global.asax App_Start() 方法中配置的。但是当试图在 ServerEndpoint(实际的“总线”dll,在主机内运行)中执行此操作时,这不起作用。

4

2 回答 2

1

您为此使用依赖注入,请参阅http://support.nservicebus.com/customer/portal/articles/862398-how-do-i-get-a-reference-to-ibus-in-my-message-handler-

于 2013-02-06T11:42:15.783 回答
0

感谢所有的反馈——我想在我能走路之前跑步。

从表面上看,要将消息发送到另一个端点,我需要设置一个不同的程序集(ServiceBus.Host)。

总线是使用 DI 自动创建的,所以这毕竟不是问题。

我观看了 Andreas Ohlund ( http://pluralsight.com/training/Courses/TableOfContents/nservicebus ) 的精彩 Pluralsight 视频,并按照他在这里构建的示例进行操作(参见 BusStop - Billing Take 2)

于 2013-02-08T09:58:58.657 回答