Я пытаюсь подключиться к стороннему сервису, описанному как файл .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.