Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > .NET: Распределенные приложения > Как сменить WS Addressing и убрать ReplyTo


Автор: Prog1 22.12.11, 12:30
Мой клиент на C# отправляет такой заголовок на сервер:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing">
<s:Header>
<a:Action s:mustUnderstand="1">http://roskazna.ru/SmevUnifoService/UnifoTransferMsg</a:Action>
<a:MessageID>urn:uuid:a58f8a06-aa5a-4132-8f8e-afeda6615e79</a:MessageID>
<ActivityId CorrelationId="fca48139-388e-49d2-adc9-a6a583057156" xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">3a3ded8e-c480-4123-8da2-17e060ad2a24</ActivityId>
<a:ReplyTo>
<a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address>
</a:ReplyTo>
<a:To s:mustUnderstand="1">urn:sv:fk@fk.smev.ru</a:To>
<MessageType xmlns="urn:sv:interaction:v0.1">Electronic</MessageType>
<From xmlns="http://www.w3.org/2005/08/addressing">
<Address>urn:sv:AdminD@nadzor.ru</Address>
</From>
</s:Header>

Сервер написан не мной. На Java. Он падает от таких запросов. Мне сказали, что нужно заменит WS Addressing на http://www.w3.org/2005/08/addressing и ReplyTo убрать. То есть должно быть вот так:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:a="http://www.w3.org/2005/08/addressing">
<s:Header>
<a:Action s:mustUnderstand="1">http://roskazna.ru/SmevUnifoService/UnifoTransferMsg</a:Action>
<a:MessageID>urn:uuid:a58f8a06-aa5a-4132-8f8e-afeda6615e79</a:MessageID>
<ActivityId CorrelationId="fca48139-388e-49d2-adc9-a6a583057156" xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">3a3ded8e-c480-4123-8da2-17e060ad2a24</ActivityId>
<a:To s:mustUnderstand="1">urn:sv:fk@fk.smev.ru</a:To>
<MessageType xmlns="urn:sv:interaction:v0.1">Electronic</MessageType>
<From xmlns="http://www.w3.org/2005/08/addressing">
<Address>urn:sv:AdminD@nadzor.ru</Address>
</From>
</s:Header>
<s:Body>

Покопался в интернете. Внятного ответа не нашёл. Сам вообще не представляю как сменить эти вещи. Предполагаю, что нужно что-то прописать в конфиге, но вот что... Подскажите, пожалуйста. Как это можно сделать? Или хотя бы в какую сторону копать?

Автор: Prog1 23.12.11, 04:58
addressing поменял. В конфиге нужно вот так писать:
<binding name="UnifoSmevBinding" receiveTimeout="00:01:15" sendTimeout="00:01:15">
<textMessageEncoding messageVersion="Soap11WSAddressing10" writeEncoding="utf-8" />
<httpTransport maxBufferPoolSize="1048576" maxReceivedMessageSize="1048576" authenticationScheme="Anonymous" maxBufferSize="1048576" useDefaultWebProxy="false" />
</binding>



Обратите внимание на фразу messageVersion="Soap11WSAddressing10". Именно она задаёт addressing.


ReplyTo пока смог убрать только используя MessageInspector. Понимаю, что костыль. Но по другому пока не понял как.



P.S. Почему никто не поможет???

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)