Using NServiceBus with Asp.Net MVC 2

前端 未结 3 1999
日久生厌
日久生厌 2021-01-31 23:51

Is there a way to using NServiceBus with Asp.Net MVC 2? I want to send a request message from a Asp.Net MVC2 Application to a Service, which handle the message and reply with a

相关标签:
3条回答
  • 2021-02-01 00:04

    If this is a greenfield project, I would strongly recommend thinking about using Command Query Separation pattern which would help you logically separate concerns regarding that change state in the business domain (command) and queries which acts only as state description mechanism. Then Commands can be implemented in NServiceBus and Queries using WCF for instance.

    0 讨论(0)
  • 2021-02-01 00:13

    There is a reason that NServiceBus only supports registering callback for status codes and ints. That reason is that you shouldn't use NServiceBus for sync request/response style communications, those scenarios is best solved with frameworks like Wcf, NNibernate , EF, Ado.net etc.

    You should look at only use NSB for async parts of your application like to send off "commands" to backend services for processing.

    An in depth explanation can be found here:

    http://andreasohlund.net/2010/04/22/messaging-shouldnt-be-used-for-queries

    If you still want to do request/response with NSB you'll have to work for it :) using a messagehandler for your response that updates some cache in your MVC app. With that in place you can do some ajax style polling to determine when the data arrives.

    Hope this helps!

    0 讨论(0)
  • 2021-02-01 00:16

    If you really want to do this, here's how:

    var sync = Bus.Send<SomeMessage>(/*data*/)
        .Register((AsyncCallback)delegate(IAsyncResult ar) {
            var result = ar.AsyncState as CompletionResult;
    
            // do something with result.Messages
        },
        null
    );
    
    sync.AsyncWaitHandle.WaitOne(/*timeout*/);
    
    0 讨论(0)
提交回复
热议问题