【发布时间】:2015-12-29 02:38:17
【问题描述】:
我在类库中引用了 WCF 服务,并在 Web 应用程序中引用了该类库。当我尝试从服务中调用方法时,我遇到了异常。
"Content Type multipart/related; type="application/xop+xml";start="<http://tempuri.org/0>";boundary="uuid:901bc2e6-6d57-4363-9f99-41ca4884ce16+id=1";start-info="text/xml" was not supported by service https://URL_OF_Service/. The client and service bindings may be mismatched."
这是我的配置
<system.serviceModel>
<bindings>
<customBinding>
<binding name="CoreSoapBinding">
<textMessageEncoding messageVersion="Soap12" />
<httpTransport />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="https://URL_OF_Service/" binding="customBinding"
bindingConfiguration="CoreSoapBinding" contract="ContractName"
name="CoreSoapPort" />
</client>
</system.serviceModel>
我在应用程序中创建了绑定对象并传递给服务。
BasicHttpBinding binding = new BasicHttpBinding()
binding.Security.Mode = BasicHttpSecurityMode.Transport;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
binding.Name = "CoreSoapPort";
binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;
binding.BypassProxyOnLocal = false;
binding.UseDefaultWebProxy = true;
binding.MessageEncoding = WSMessageEncoding.Mtom;
binding.AllowCookies = false;
binding.TransferMode = TransferMode.Buffered;
binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
Encoding textencoding = Encoding.UTF8;
binding.TextEncoding = textencoding;
binding.MaxReceivedMessageSize = Int32.MaxValue;
我尝试将配置更改为多个以匹配服务器配置。但没有运气。
【问题讨论】:
-
错误消息是服务不支持 mtom 内容类型(多部分/相关)。为什么你认为你需要在代码配置的绑定中指定 mtom?
-
我认为它适合你WCF Error: the client and service bindings may be mismatched希望它有所帮助。