Existe-t-il un moyen d'utiliser NServiceBus avec Asp.Net MVC 2? Je veux envoyer un message de demande d'une application Asp.Net MVC2 à un service, qui gère le message et répond avec un message de réponse. Y a-t-il un moyen de le faire clairement?Utilisation de NServiceBus avec Asp.Net MVC 2
Répondre
Si vous vraiment voulez faire, voici comment:
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*/);
Merci, ça marche très bien et fais tout ce que je veux. –
Il existe une raison pour laquelle NServiceBus prend uniquement en charge l'enregistrement du rappel pour les codes d'état et les ints. Cette raison est que vous ne devez pas utiliser NServiceBus pour les communications de type requête/réponse de synchronisation, ces scénarios sont mieux résolus avec des frameworks tels que Wcf, NNibernate, EF, Ado.net, etc
Vous ne devriez utiliser que NSB pour async certaines parties de votre application aiment envoyer des "commandes" aux services de backend pour le traitement.
Une explication approfondie peut être trouvée ici:
http://andreasohlund.net/2010/04/22/messaging-shouldnt-be-used-for-queries
Si vous voulez toujours faire la demande/réponse avec NSB que vous aurez à travailler pour elle :) en utilisant un messageHandler pour votre réponse qui met à jour un cache dans votre application MVC. Avec cela en place, vous pouvez faire un sondage de style ajax pour déterminer quand les données arrivent.
Espérons que cela aide!
+1 J'essayais de comprendre pourquoi j'ai besoin de NServiceBus pour la synchronisation req/resp (comme vous l'avez dit il n'est pas destiné à être une technologie req/resp sync) et j'ai trouvé votre réponse très utile –
Si c'est un projet entièrement nouveau, je recommande fortement penser à l'aide de modèle de séparation de requête de commande qui vous aiderait préoccupations logiquement distinctes concernant changement d'état dans le domaine métier (commande) et requêtes qui agissent uniquement comme mécanisme de description d'état. Ensuite, les commandes peuvent être implémentées dans NServiceBus et les requêtes en utilisant WCF par exemple.
- 1. ASP.NET MVC 2 - Utilisation de EF4 avec échafaudage List
- 2. ASP.NET MVC 2 JSONP avec MVC Futures
- 3. Utilisation de Profile et CreateUserwizard dans ASP.NET MVC 2
- 4. Utilisation de ViewModels dans ASP.NET MVC 2 - formulaires multiples
- 5. Utilisation de ASP.NET MVC 2 pour afficher l'enregistrement joint
- 6. Utilisation de NServiceBus dans une application Web
- 7. Utilisation de 2 boutons dans le même formulaire ASP.NET MVC
- 8. utilisation Mvc 2 avec ninject 2 et NHibernate - Get SessionFactory
- 9. Utilisation de TinyMCE avec ASP.NET MVC
- 10. Utilisation de jEditable avec ASP.NET MVC (POSTing)
- 11. Utilisation de JQuery avec ASP.NET MVC Framework
- 12. Asp.Net MVC 2 Validation
- 13. ASP.Net MVC 2 Default.aspx
- 14. Château Windsor avec ASP.NET MVC 2 Zones
- 15. Asp.Net Mvc 2 - Liste RenderAction avec créer
- 16. asp.net mvc 2 UIHint avec plusieurs défonitions
- 17. ASP.NET MVC 2 - Html.DropDownListFor confusion avec ViewModel
- 18. ASP.NET MVC 2 problème avec UpdateModel
- 19. asp.net mvc 2 multithread
- 20. Asp.net MVC 2 ValidationInput
- 21. ASP.NET MVC 2 - Organisation
- 22. ASP.NET MVC 2 i18n
- 23. ASP.NET MVC 2 DisplayFor()
- 24. Tutoriel ASP.NET MVC 2
- 25. ASp.Net MVC 2 Performance
- 26. ASP.NET MVC 2 Preview 2 - Étendre LabelExtensions.LabelFor
- 27. Asp.net MVC 2 Localisation Problème dans dev
- 28. ASP.NET MVC 2 ID d'entrée
- 29. Paging dans asp.net-mvc-2
- 30. comportement étrange ASP.NET MVC 2
Quel est votre cas d'utilisation spécifique? Pouvez-vous fournir plus de détails sur ce que vous essayez d'accomplir, alors je n'ai pas à deviner? –