Почему WCF автоматически не влияет на заголовок Кому на исходящем сообщении с Ответить на входящее сообщение? - PullRequest
0 голосов
/ 03 августа 2009

У меня есть служба, которая отправляет сообщение с заголовком ReplyTo, установленным на обратный адрес. Я думал, что:

OperationContext.Current.GetCallbackChannel<IHelloCallback>().RespondHello("tomi");

автоматически вызовет мой клиент, но я получу это исключение:

Для отправки сообщения на стороне сервера композитные дуплексные каналы, сообщение должен иметь свойство «Via» или набор заголовков «Кому».

Я что-то не так делаю или WCF немного ленивый?

В настоящее время я использую поведение с инспектором сообщений, чтобы эти заголовки совпадали, но это выглядит немного странно ...

пс: я использую MSMQ

Обновление

Я создал два элемента привязки, чтобы сделать работу msmq over duplex доступной в codeplex Вы можете увидеть весь пример, но, как я уже сказал, из-за этой ошибки я использую поведение с инспектором сообщений установить заголовок To исходящего сообщения на ReplyTo входящего сообщения. Что странно, так это то, что моему клиенту не нужно такое поведение, и он также может перезвонить в мою службу.

Ответы [ 2 ]

0 голосов
/ 03 августа 2009

Вы создали свою собственную привязку для MSMQ, чтобы включить двустороннюю связь? wsDualHttpBinding - единственная готовая привязка WCF для поддержки дуплексной связи и, следовательно, механизма CallbackContract.

Если вы сделали - можете ли вы опубликовать конфигурацию привязки?

Марк

0 голосов
/ 03 августа 2009

Эта ошибка может возникнуть, если у вас не включен надежный сеанс.

EDIT:

Вот ссылка на того, кому, похоже, удалось использовать транспорт MSMQ в качестве дуплексного транспорта:

http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2006/10/26/8937.aspx

Надеюсь, это поможет

...