2016-05-28 3 views
0

Я создаю специальный кодер сообщений, аналогичный тому, что у вас есть в примерах проектов WCF (WF_WCF_Samples \ WCF \ Extensibility \ MessageEncoder \ Compression).Почему заголовки мыла отсутствуют при использовании Custom MessageEncoder

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

enter image description here

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

enter image description here

Как вы можете увидеть To и Действие отсутствуют. Это заканчивается тем, что дает мне это исключение.

The SOAP action specified on the message, '', does not match the HTTP SOAP Action, 

Это может быть исправлено путем добавления следующего вручную в MessageEncoder

message.Headers.To = new Uri("http://localhost:19860/Service1.svc"); 
message.Headers.Action = @"http://tempuri.org/IService1/GetData"; 

Так что мой вопрос, почему это происходит? Почему я пропускаю свои заголовки при использовании настраиваемого MessageEncoder, хотя я просто использую внутренний кодер для создания сообщения?

Полное описание доступно на следующих языках: английский. Чтобы проверить это вам просто нужно мыло пользовательский интерфейс и отправить запрос на http://localhost:19860/Service1.svc

https://github.com/janmchan/WCFCompression

ответ

0

Наконец нашел проблему. Кажется, это ошибка в WCF. Action и To в SoapHeaders не должны действительно требоваться на Soap 1.2, но по какой-то причине даже при использовании этой версии я все еще получаю эту проблему с WCF только при использовании специального MessageEncoder, даже если я просто вызываю ReadMessage внутреннего кодера. Решение также довольно затруднительно. Как следует из сообщения об ошибке, действие не соответствует действию мыла, поэтому мне просто нужно добавить SOAPAction заголовка, даже если он пуст.

Вот сообщение, которое помогло мне найти решение.

WCF - SOAP Action mismatch error while testing with SoapUI

Смежные вопросы