Nservicebus同步调用

Nservicebus同步调用,nservicebus,Nservicebus,我正在为我的一个项目使用NServiceBUs的请求-应答模型。有一个自托管服务总线侦听请求消息,并用请求消息进行应答。 所以在WCF消息代码中,我的代码如下 // sent the message to bus. var synchronousMessageSent = this._bus.Send(destinationQueueName, requestMessage) .Register( (AsyncCallback)delegate(IAsyncRe

我正在为我的一个项目使用NServiceBUs的请求-应答模型。有一个自托管服务总线侦听请求消息,并用请求消息进行应答。 所以在WCF消息代码中,我的代码如下

// sent the message to bus.
var synchronousMessageSent = 
    this._bus.Send(destinationQueueName, requestMessage)
    .Register(
        (AsyncCallback)delegate(IAsyncResult ar)
        {
             // process the response from the message.
             NServiceBus.CompletionResult completionResult = ar.AsyncState as NServiceBus.CompletionResult;
             if (completionResult != null)
             {
                 // set the response messages.
                 response = completionResult.Messages;
             }                                                     
        }, 
        null);

       // block the current thread.
        synchronousMessageSent.AsyncWaitHandle.WaitOne(1000);
       return response;
目的地将发送回复。
我收到一次或两次回复,结果是客户没有收到回复。我做错了什么吗

为什么要尝试将a同步框架转换为同步框架?你试图做的事情有一个根本性的缺陷

您应该仔细研究一下您的设计,并欣赏a-sync调用的好处。你正在做的事情

// block the current thread.
synchronousMessageSent.AsyncWaitHandle.WaitOne(1000);

这是非常令人关注的。你想用这个达到什么目的?基于a同步消息传递通信设计您的系统,您将拥有一个更好的系统。否则,您最好使用某种阻塞tcp/ip套接字。

为什么要尝试将a同步框架转换为同步框架?你试图做的事情有一个根本性的缺陷

您应该仔细研究一下您的设计,并欣赏a-sync调用的好处。你正在做的事情

// block the current thread.
synchronousMessageSent.AsyncWaitHandle.WaitOne(1000);

这是非常令人关注的。你想用这个达到什么目的?基于a同步消息传递通信设计您的系统,您将拥有一个更好的系统。否则,你最好还是使用一种阻塞的TCP/IP套接字。

考虑一下:考虑一下:投票失败,而不是答案。如果NServiceBus不支持它,那么就说它不支持它,并可能提供原因,然后可能提供意见。这个“答案”纯粹是一种意见(无论它是否是最佳实践,还是警告、分歧、选择等),被否决的不是答案。如果NServiceBus不支持它,那么就说它不支持它,并可能提供原因,然后可能提供意见。这个“答案”纯粹是一种意见(无论它是不是最佳实践,还是警告、分歧、选择等等)