2015-02-08 1 views
1

У меня есть удаленная конечная точка, не находящаяся под моим контролем, для которой у меня нет WSDL, но у меня есть образцы сообщений SOAP. Поскольку я действительно не хочу играть с ножницами и делать конверты с мылом вручную, моя идея заключалась в создании контрактов на услуги/данные, которые (когда-то используемые в клиенте WCF) генерируют желаемые SOAP-запросы и анализы ответов. Я сразу же столкнулся с проблемой, с первым методом в том, что каждый конверте, кажется, содержит Action адресации в заголовке:Удалить действие (mustUnderstand) из запроса клиента

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
    <s:Header> 
    <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">urn:IService1/Auth</Action> 
    </s:Header> 
    <s:Body> 
    <Auth> 
     <login xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
     <Password i:nil="true" /> 
     <userName i:nil="true" /> 
     </login> 
    </Auth> 
    </s:Body> 
</s:Envelope> 

Это путает вызываемый который обильный объекты на мое сообщение. Я пробовал разные подходы к настройке (я использую web.config для настройки mock-сервиса и клиента), но, похоже, ничего не удаляет этот раздражающий Action-узел. Любой способ решить это, не выполняя то, что я не хочу делать (играя с XML вручную)

ответ

1

Моя проблема решена моим движущимся XML-сериализованным форматом, как описано в Force parameter as Service contract attribute. Когда я переключился на XML formater, заголовок Action прекратил генерировать. Если кто-то, однако, знает, как удалить его в классах DataContract, не стесняйтесь показывать, я уверен, что это будет полезно.

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

  • Нет связанных вопросов^_^