этот вопрос задавался много раз, но я, кажется, нигде не нашел решения, так что вот оно. Заранее извиняюсь. Я получаю эту ошибку, когда я возвращаю предметы для обслуживания клиенту. Та же самая конфигурация с TextMessageEncoder прекрасно работает для всех типов запросов, которые я делаю, но как только я изменяю кодировку на Mtom, это ошибка. Отличается ли ответ от запроса?
System.ServiceModel.ProtocolException: 'Тип содержимого multipart / related; тип = "приложения / ХОР + xml", начать = "http://tempuri.org/0"; граница = "UUID: 8ac1e2f2-8d84-4069-bf5a-db43a3d70f87 + ID = 5", старт-инфо =» application / soap + xml "ответного сообщения не соответствует типу содержимого привязки (application / soap + xml; charset = utf-8). При использовании пользовательского кодировщика убедитесь, что метод IsContentTypeSupported реализован правильно. Первые 1024 байта ответа были следующими: '--uuid: 8ac1e2f2-8d84-4069-bf5a-db43a3d70f87 + id = 5 Content-ID: http://tempuri.org/0 Content-Transfer-Encoding: 8bit Content-Type : application / xop + xml; charset = utf-8; type = "application / soap + xml"
Первые 1024 байта ответа были: '--uuid: 8ac1e2f2-8d84-4069-bf5a -db43a3d70f87 + id = 6 Content-ID: http://tempuri.org/0 Content-Transfer-Encoding: 8bit Тип содержимого: application / xop + xml; charset = utf-8; type = "application / soap + xml "
Сервис web.config
<system.serviceModel>
<services>
<service name="WebServices.MyService" behaviorConfiguration="Behavior">
<endpoint address="" binding="customBinding" bindingConfiguration="Soap12WithHttps" contract="WebServices.IMyService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="Behavior">
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<customBinding>
<binding name="Soap12WithHttps">
<mtomMessageEncoding messageVersion="Soap12"></mtomMessageEncoding>
<httpsTransport></httpsTransport>
</binding>
</customBinding>
</bindings>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
Клиентское приложение.config
<system.serviceModel>
<bindings>
<customBinding>
<binding name="CustomBinding_IMyService">
<mtomMessageEncoding messageVersion="Soap12"></mtomMessageEncoding>
<httpsTransport></httpsTransport>
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="https://somepath.com/Services/MyService.svc"
binding="customBinding" bindingConfiguration="CustomBinding_IMyService"
contract="myServiceClient.IMyService" name="CustomBinding_IMyService" />
</client>