Steven Lam

Steven Lam

  • NA
  • 15
  • 1.8k

Error consuming Web Service, content type does not match binding

Jun 24 2021 6:40 PM

I am trying to consume a web service (SOAP API) but when the function is called, I get this exception: 

The content type multipart/related; type="application/xop+xml"; boundary="uuid:53c58624-2aef-492e-83df-1129be39d10d"; start="<[email protected]>"; start-info="text/xml" of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024 bytes of the response were: '--uuid:53c58624-2aef-492e-83df-1129be39d10d
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"
Content-Transfer-Encoding: binary
Content-ID: <[email protected]>

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/><soap:Body><ns2:exportDevicesResponse xmlns:ns2="http://devicemgmt.nbapi.cgms.cisco.com/"><deviceReport><data><xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:[email protected]"/></data><date>2021-06-24T14:25:45.877-04:00</date><query>base.Channel.exportDevicesAsync(request)</query><status>COMPLETED</status></deviceReport></ns2:exportDevicesResponse></soap:Body></soap:Envelope>
--uuid:53c58624-2aef-492e-83df-1129be39d10d
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
Content-ID: <[email protected]>
Content-Disposition: attachment;name="130_1624559145'.

I'm using .NET Core 3.1 and used this Medium Article to set up my WSDL files/Connected Services. I have tried adding the following to my App.config file (though I'm not sure if I have it actually attached, it still has the green + sign). But it didn't seem to work. 

<configuration>
  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding messageEncoding="Mtom">          
        </binding>
      </basicHttpBinding>
    </bindings>
  </system.serviceModel>
</configuration>

I have also tried:

BasicHttpBinding binding = new BasicHttpBinding();
binding.MessageEncoding = WSMessageEncoding.Mtom;

But it doesn't seem to work because .MessageEncoding does not seem to be supported in .NET Core 3.1 and only in .NET Framework. So, does anyone know of a fix to the exception or to allow the binding to be encoded as Mtom? 


Answers (1)