2010-09-08 30 views
7

Asp.Net MVC 2 ile NServiceBus kullanmanın bir yolu var mı? Bir ASP.NET MVC2 uygulamasından bir iletiye, iletiyi işleyen ve bir yanıt iletisiyle yanıtlayan bir hizmete göndermek istiyorum. Bunu açıkça yapmanın bir yolu var mı?Asp.Net MVC ile NServiceBus Kullanma 2

+0

Özel kullanım durumunuz nedir? Neyi başarmaya çalıştığınız hakkında daha fazla bilgi verebilir misiniz, bu yüzden tahmin etmek zorunda değilim? –

cevap

14

aşağıdaki gibi yapılır Bu durum, yalnızca devlet tanımlama mekanizması olarak hareket eden iş alanında (komut) ve sorgularda durumu değiştirir. Daha sonra Komutlar, örneğin WCF kullanarak NServiceBus ve Queries'te uygulanabilir.

+0

Teşekkürler, bu çok güzel çalışıyor ve istediğim her şey. –

18

NServiceBus'un yalnızca durum kodları ve inters için geri arama kaydını kaydetmesini desteklemesinin bir nedeni vardır. Bu nedenle, Sync istek/yanıt stili iletişimi için NServiceBus kullanmamanız gerektiğinden, bu senaryolar en iyi Wcf, NNibernate, EF, Ado.net vb. Gibi çerçevelerle çözülür.

Yalnızca uyumsuzluk için NSB'yi kullanmalısınız uygulamanızın bölümleri, işlemek için arka uç hizmetlere "komutlar" göndermeyi sever.

derinlik açıklama An burada bulabilirsiniz: Hala isteği yapmak istiyorsanız

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

/NSB ile tepki bunu :) Yanıtınız bunun için bir MessageHandler kullanmak için çalışmanız gerekecektir MVC uygulamanızda bazı önbellekleri günceller. Bununla, verilerin ne zaman geleceğini belirlemek için bazı ajax stili sorgulamalarını yapabilirsiniz.

Bu yardımcı olur umarız! Bu bir yeşil alan projesi ise, şiddetle ilgili mantıksal olarak ayrı endişeleri yardımcı olacağını Komuta Sorgu Ayırma kalıbı kullanarak düşünmeye öneriyoruz

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

+1 Neden sync req/resp için sync/resp için NServiceBus'a ihtiyacım olduğunu anlamaya çalışıyordum (ve bunun bir sync req/resp teknolojisi olması gerektiği anlamına gelmiyor) ve cevabınızı çok yararlı buldum –

0

: Gerçekten bunu yapmak istiyor Eğer