Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WCF, Web Services, Remoting Новый топик    Ответить
 Binding mismatch ?  [new]
МСильвер
Member

Откуда: :адуктО
Сообщений: 618
Есть некий WCF сервис, который может посылать данные (тип файла, время и файл xml), написан на Java

У сервиса есть WSDL файл, который выслал мне админ сервиса, по этому файлу я построил свой сервис на .net , который может принимать эти данные.

Все хорошо, все работает когда тестирую в SOAP UI, но когда рабочий сервис посылает мне данные , то получает отлуп:

(415)Cannot process the message because the content type 'multipart/related; type="text/xml"; start="<A8AA817713DC6648E12D33BD3E93899A>"; boundary="----=_Part_227925_9361419.1376343061191"' was not the expected type 'text/xml; charset=utf-8'.

Когда начал гуглить эту ошибку, понял, что скорее всего, не совпадают binding, но еще может не совпадать тип сообщений, поменял на messageEncoding="Mtom"

Ошибка стала другой:
Error creating a reader for the MTOM message / MTOM messages must have type 'application/xop+xml'.

Мой сервис использует basicHttpBinding, что скорее всего, не поддерживается сервисом отправителем. Точно сказать не могу, так как на том конце сидит человек, который знает только как запустить отправку сообщений, но не как оно устроено.


Пример сообщения от сервисе отправителя из документации
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:comit-service=http://www.electricitywits.co.nz/ws/comit-service
xmlns:wsrm="http://docs.oasis-open.org/wsrm/2004/06/ws-reliability-1.1.xsd">

<soapenv:Header>
<wsrm:Request soapenv:actor="comit-service" soapenv:mustUnderstand="1">
<wsrm:ExpiryTime>2006-01-12T153405560</wsrm:ExpiryTime>
<wsrm:ReplyPattern>
<wsrm:Value>Response</wsrm:Value>
</wsrm:ReplyPattern>
<wsrm:AckRequested/>
<wsrm:DuplicateElimination/>
<wsrm:MessageId groupId="mid://91345.11528@electricitywits.co.nz"/>
</wsrm:Request>
</soapenv:Header>

<soapenv:Body>
<comit-service:message-details>
<message-type>five-min-prices</message-type>
<ftp-filename>5minprices_20060112153002.csv.gz</ftp-filename>
<message-format>xml</message-format>
</comit-service:message-details>
</soapenv:Body>

</soapenv:Envelope>


Еще из документации понятно, что они используют: WS-I Basic Profile 1.1


Пока собираюсь тестировать с wsHttpBinding, но если есть другие варианты и мысли, буду рад.

К сообщению приложен файл (comit-service.wsdl - 3Kb) cкачать
16 авг 13, 07:02    [14716290]     Ответить | Цитировать Сообщить модератору
 Re: Binding mismatch ?  [new]
AlexeiK
Member

Откуда:
Сообщений: 2840
МСильвер,

multipart/related; type="text/xml"
text/xml; charset=utf-8

похоже раз ница в этих двух строчках.
16 авг 13, 12:57    [14718093]     Ответить | Цитировать Сообщить модератору
 Re: Binding mismatch ?  [new]
МСильвер
Member

Откуда: :адуктО
Сообщений: 618
AlexeiK,

Это, конечно, очевидно, но что делать с этим, просто замена httpBinding на wsHttpBinding не помогла
19 авг 13, 08:15    [14723828]     Ответить | Цитировать Сообщить модератору
 Re: Binding mismatch ?  [new]
AlexeiK
Member

Откуда:
Сообщений: 2840
МСильвер,

так, задать входящий формат нету возможности?
19 авг 13, 13:33    [14725389]     Ответить | Цитировать Сообщить модератору
 Re: Binding mismatch ?  [new]
AlexeiK
Member

Откуда:
Сообщений: 2840
входящий формат у принимающий стороны я имею ввиду.
19 авг 13, 13:33    [14725391]     Ответить | Цитировать Сообщить модератору
 Re: Binding mismatch ?  [new]
МСильвер
Member

Откуда: :адуктО
Сообщений: 618
Не совсем, скорее всего это баг java

http://connect.microsoft.com/VisualStudio/feedback/details/511845/wcf-client-found-response-content-type-of-multipart-related-but-expect-text-xml
20 авг 13, 05:20    [14728445]     Ответить | Цитировать Сообщить модератору
 Re: Binding mismatch ?  [new]
МСильвер
Member

Откуда: :адуктО
Сообщений: 618
Сообщение в итоге состоит из 2х частей, первая обычный text, вторая часть - запакованный файл...


------=_Part_24506_10788370.1377042063109
Content-Type: text/xml; charset=UTF-8
Content-Transfer-Encoding: binary
Content-Id: <B6575B8464CF6278EB11E1A96312BE55>

------=_Part_24506_10788370.1377042063109
Content-Type: application/x-gzip
Content-Transfer-Encoding: binary
Content-Id: <five-min-prices>
21 авг 13, 03:55    [14733674]     Ответить | Цитировать Сообщить модератору
 Re: Binding mismatch ?  [new]
МСильвер
Member

Откуда: :адуктО
Сообщений: 618
Задать входящий формат я могу какой угодно, только не знаю какой и как, все стандартные перепробовал
21 авг 13, 04:00    [14733676]     Ответить | Цитировать Сообщить модератору
 Re: Binding mismatch ?  [new]
МСильвер
Member

Откуда: :адуктО
Сообщений: 618
МСильвер
Сообщение в итоге состоит из 2х частей, первая обычный text, вторая часть - запакованный файл...


------=_Part_24506_10788370.1377042063109
Content-Type: text/xml; charset=UTF-8
Content-Transfer-Encoding: binary
Content-Id: <B6575B8464CF6278EB11E1A96312BE55>

------=_Part_24506_10788370.1377042063109
Content-Type: application/x-gzip
Content-Transfer-Encoding: binary
Content-Id: <five-min-prices>


т.е. по сути это MTOM, но когда выставляешь кодировку, например:
<mtomMessageEncoding messageVersion="Soap11" />


Получаешь
Error creating a reader for the MTOM message. MTOM messages must have type 'application/xop+xml'.
21 авг 13, 05:00    [14733686]     Ответить | Цитировать Сообщить модератору
Все форумы / WCF, Web Services, Remoting Ответить