Utilizzando NServiceBus con Asp.Net MVC 2

voti
7

C'è un modo per utilizzare NServiceBus con Asp.Net MVC 2? Voglio inviare un messaggio di richiesta da un Asp.Net Application MVC2 ad un Servizio, che gestisce il messaggio e rispondere con un messaggio di risposta. c'è un modo per fare questo in modo chiaro?

È pubblicato 08/09/2010 alle 13:17
fonte dall'utente
In altre lingue...                            


3 risposte

voti
18

C'è una ragione che NServiceBus supporta solo la registrazione di callback per codici di stato e int. Che la ragione è che non si dovrebbe usare per le comunicazioni NServiceBus stile di sincronizzazione richiesta / risposta, questi scenari è meglio risolti con framework come WCF NNibernate, EF, Ado.net etc.

Si dovrebbe guardare a utilizzare solo per le parti NSB asincroni della vostra applicazione desidera inviare fuori "comandi" a servizi di back-end per l'elaborazione.

Una spiegazione in profondità può essere trovato qui:

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

Se si vuole ancora fare richiesta / risposta con NSB si dovrà lavorare per essa :) utilizzando una messageHandler per la risposta che aggiorna alcune cache del MVC app. Con questo in luogo si può fare un po 'di polling stile ajax per determinare quando arriva il dato.

Spero che questo ti aiuti!

Risposto il 08/09/2010 a 15:32
fonte dall'utente

voti
14

Se davvero vuole fare questo, ecco come fare:

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*/);
Risposto il 09/09/2010 a 02:55
fonte dall'utente

voti
0

Se questo è un progetto greenfield, che vi consiglio vivamente pensando di usare comando query modello di separazione che li aiuterebbe ad preoccupazioni logicamente distinte per quanto riguarda quello stato cambiamento nel dominio aziendale (comando) e le query che agisce solo come meccanismo di descrizione dello stato. Poi comandi può essere implementato in NServiceBus e query utilizzando WCF per esempio.

Risposto il 09/09/2010 a 06:42
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more