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

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

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

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

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

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

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

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

Обновить

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

2 ответа

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

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

Марк

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

РЕДАКТИРОВАТЬ:

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

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

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

Другие вопросы по тегам