Несоответствие типов WCF между xop + xml и soap + xml - PullRequest
3 голосов
/ 22 сентября 2019

Я пытаюсь подключиться к стороннему сервису, описанному как файл .wsdl.Я не могу предоставить весь файл, потому что он слишком длинный, но важными его частями являются:

<wsdl:port name="ec2HttpSoap12Endpoint" binding="tns:ec2Soap12Binding">
  <soap12:address location="<service url>.ec2HttpSoap12Endpoint/"/>
</wsdl:port>

<wsdl:binding name="ec2Soap12Binding" type="tns:ec2PortType">
<soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
  <wsdl:operation name="someOperation">
    <soap12:operation soapAction="urn:someOperation" style="document"/>
    <wsdl:input>
      <soap12:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
      <soap12:body use="literal"/>
    </wsdl:output>
  </wsdl:operation>
  ...
</wsdl:binding>

Мой код прост:

ec2PortTypeClient client = new ec2PortTypeClient("ec2HttpSoap12Endpoint", "<service url>");
var response = ePortConnect.someOperation(...).Result.@return;

Но я получаю исключение:

ProtocolException: тип содержимого multipart / related;граница = "MIMEBoundary_f9ac1ac9023b2de2dbb6e3f07d0952ff0bbdfdd7433cd9ec";тип = "приложения / XOP + XML";начать = "<0.e9ac1ac9023b2de2dbb6e3f07d0952ff0bbdfdd7433cd9ec@apache.org>";старт-инфо = "приложения / мыло + XML";action = "urn: someOperation" в ответном сообщении не соответствует типу содержимого привязки (application / soap + xml; charset = utf-8).... Первые 1024 байта ответа были:

А затем совершенно нормальный ответ от сервера!

Похоже, что определение нормальное, но тип ответа должен быть установленв XOP, или мой код C # неверен.Сервер отвечает нормально, но ответ не анализируется из-за несоответствия типов.Что я делаю не так?

Поставщик утверждает, что .wsdl верен, и я им верю.Но что может быть не так в моем двухстрочном коде?

Ссылка на полный файл .wsdl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...