Я получаю эту ошибку при использовании веб-службы.Я испробовал множество решений, предоставленных экспертами, но в моем проекте это не сработало.
Тип содержимого application / xml; charset = utf-8 в ответном сообщении не соответствует типу содержимогопривязка (text / xml; charset = utf-8)
Ошибка:
Тип содержимого text / html; charset = UTF-8 в ответном сообщении несоответствовать типу содержимого привязки (text / xml; charset = utf-8).При использовании пользовательского кодировщика убедитесь, что метод IsContentTypeSupported реализован правильно.
Мой файл web.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="ping_binding">
<security mode="Transport" />
</binding>
<binding name="ping_binding1" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="https://xxxx.com/ping/ping" binding="basicHttpBinding"
bindingConfiguration="ping_binding" contract="NiprWebService.pingIF"
name="ping" />
</client>
</system.serviceModel>
</configuration>
Код C #
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
using (var ws = new NiprWebService.pingIFClient())
{
using (new OperationContextScope(ws.InnerChannel))
{
var requestMessage = new HttpRequestMessageProperty();
string authInfo = USER + ":" + PASS;
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
requestMessage.Headers.Add("Authorization", "Basic " + authInfo);
requestMessage.Headers.Add("Accept", "text/xml");
requestMessage.Headers.Add("ContentType", "text/xml; charset=utf-8");
//requestMessage.Headers.Add("Method", "POST");
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] =
requestMessage;
}
var gw = new NiprWebService.gateway();
var pr = ws.gateway(gw);
Console.WriteLine(pr.available);
}