Обработка подозрительного сообщения в WCF MSMQ 4.0

Я пытаюсь обработать подозрительные сообщения в WCF с транспортом MSMQ.

Я перешел по ссылке ниже для создания исходных сервисов и ядовитых сервисов.

http://msdn.microsoft.com/en-us/library/aa395218.aspx

Единственная разница вместо сам хостинг, я разместил 2 servces в IIS с единственным проектом хоста.

Конфигурация обоих сервисы ниже.


  
    
  
  
    
    
  

Обе услуги работают правильно.

Проблема - когда сообщение помещается в ядовитую очередь, ядовитый сервис не обрабатывает сообщение. Я наблюдал сообщения в Ядовитой очереди, они предназначаются к исходному сервису только. затем, как ядовитый сервис может обработать их? после прохождения через MSDN я узнал это атрибутом поведения установки Service, канал WCF заботится эта проблема. Следующий paragraoh объясняет то же.

"Сообщения в очереди подозрительного сообщения являются сообщениями, которые адресованы сервису, который обрабатывает сообщение, которое могло отличаться от сервисной конечной точки подозрительного сообщения. Поэтому, когда сервисные сообщения чтений подозрительного сообщения от очереди, слой канала WCF находит несоответствие в конечных точках и не диспетчеризирует сообщение. В этом случае сообщение адресовано сервису обработки заказов, но получается сервисом подозрительного сообщения. Чтобы продолжить получать сообщение, даже если сообщение адресовано другой конечной точке, мы должны добавить ServiceBehavior для фильтрации адресов, где критерий соответствия состоит в том, чтобы соответствовать любой сервисной конечной точке, сообщение адресовано. Это требуется, чтобы успешно обрабатывать сообщения, что Вы читаете из очереди подозрительного сообщения".

Но мой ядовитый сервис не обрабатывает отравленные сообщения?

Я не могу выяснить проблему.

9
задан John Saunders 12 May 2010 в 19:45
поделиться

1 ответ

У меня такая же проблема.

Мне было интересно, не потому ли, что при размещении служб netMsmq в IIS имя очереди должно совпадать с именем службы. В случае начальной очереди сообщений это нормально (например, очередь будет чем-то вроде private / SimpleService / Service1.svc), но тогда подозрительная очередь называется private / SimpleService / Service1.svc; яд, что, очевидно, не совпадение с названием отравленной службы.

У меня были образцы, которые нормально работали при самостоятельном размещении. Эта проблема возникает только с хостингом IIS.

Если это проблема, то у меня нет решения, боюсь ...

Обновление:

Этот комментарий от

http://msdn.microsoft.com/en-us/library /ms789042(v=VS.90).aspx

Предполагает, что проблема заключается в том, как я думал:

«Приложение, размещенное на сервере WAS, не может быть активировано на основе сообщений в системной очереди, таких как общесистемная ошибка. -letter queue или под-очереди, такие как подозрительные под-очереди. Это ограничение для этой версии продукта »

Я не думаю, что возможно указать альтернативную настраиваемую очередь подозрительных сообщений, поэтому альтернативы являются:

1) Напишите код в реализации службы для перемещения сообщений в альтернативную очередь в случае сбоя. 2) Используйте триггер для передачи сообщений из очереди подозрительных сообщений в другую очередь и пусть размещенная служба IIS прослушивает это. 3) Разместите службу вредоносных сообщений в пользовательском EXE вместо IIS

.
4
ответ дан 4 December 2019 в 23:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: