Использование служб Windows для обработки сообщений MSMQ через WCF - PullRequest
2 голосов
/ 17 декабря 2008

У нас есть решение, где мы выбираем сообщения с помощью службы Windows.

Служба Windows запускается каждые 2 минуты и получает сообщение MSMQ для передачи его веб-службе.

  1. Могу ли я создать службу WCF, которая будет автоматически получать сообщения из очереди MSMQ?
  2. Можно ли избежать службы Windows с помощью службы WCF, если она поддерживает автоматический вызов?

Ответы [ 2 ]

7 голосов
/ 17 декабря 2008

Q1: вы можете автоматически получать сообщения из MSMQ, вам нужно будет взглянуть на привязку netmsmq, есть некоторые соображения, которые следует учитывать при проектировании, если вы привыкли к собственному MSMQ, вы знаете, что у вас есть способность заглядывать в сообщения. Но когда вы используете WCF, вы теряете эту способность заглядывать. WCF будет перехватывать сообщения в MSMQ, и вы несете ответственность за синхронизацию службы WCF и приложения для просмотра. Вам также необходимо выяснить, нужны ли вам транзакционные или нетранзакционные очереди, и вам придется изменить свою привязку на основе этого.

Q2: Вам нужно будет разместить службу WCF в службе Windows или в IIS7. если вы размещаете в IIS7, изучите возможность включения прослушивателя MSMQ WAS

Вот хорошая статья: http://blogs.msdn.com/tomholl/archive/2008/07/12/msmq-wcf-and-iis-getting-them-to-play-nice-part-1.aspx

2 голосов
/ 31 января 2009

Один из способов передачи сообщений от MSMQ к вызову веб-службы заключается в использовании конечной точки службы netMsmqBinding и конечной точки клиента basicHttpBinding, которые поддерживают один и тот же контракт. Служба netMsmq автоматически извлекает сообщения из очереди и десериализует их в объект. В своей реализации службы netMsmq просто создайте экземпляр клиентского прокси basicHttp и просто вызовите тот же метод. В основном шаблон передачи или прокси от веб-службы к MSMQ и наоборот. В «Программировании WCF» Джувала Лоуи он называет этот шаблон «HTTP-мостом» для очередей.

...