Может ли объект службы WCF, реализующий контракт для конечной точки net.msmq, также реализовать контракт обратного вызова для конечной точки net.tcp? - PullRequest
0 голосов
/ 28 февраля 2011

Попытка реализовать поддерживаемый MSMQ WCF PubSub. Я понимаю, что net.msmq является односторонним; однако, когда я использую один объект службы для реализации конечной точки net.msmq для чтения из базовой очереди и конечной точки net.tcp, на которую слушатели могут подписаться с помощью обратных вызовов, я сталкиваюсь с множеством жалоб на одностороннюю и двусторонний, DuplexChannelFactory, DuplexClientBase и т. д. и т. д.

Почти кажется, что единственный способ реализовать это - сделать так, чтобы служба чтения очереди net.msmq была клиентом для службы издателя net.tcp и уведомляла издателя, когда новое сообщение читается из очереди, а не опубликовать сообщение для подписчиков внутри страны. Или, чтобы не использовать net.msmq на приемнике, и вместо этого просто готов с простым старым объектом MessageQueue.

1 Ответ

0 голосов
/ 02 марта 2011

После рефакторинга некоторых интерфейсов и обнаружения некоторых недостающих атрибутов и нестандартных отношений между подписчиком и разработчиком обратного вызова я установил предполагаемый шаблон pubsub с поддержкой очередей.Так что да, возможно, предыдущие трудности были ошибкой разработки с моей стороны.

Редактирование / сноска: По какой-то причине сообщения, ранее переданные получателю net.msmq как MsmqMessage, теперь генерируют исключения nullreference;однако изменение подписи на MyObject работает, чего изначально не было

...