Тип содержимого text / html; charset = UTF-8 ответного сообщения не соответствует типу содержимого привязки (text / xml; charset = utf-8) - PullRequest
0 голосов
/ 18 декабря 2018

Я получаю эту ошибку при использовании веб-службы.Я испробовал множество решений, предоставленных экспертами, но в моем проекте это не сработало.

Тип содержимого 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);

        }
...