Клиент службы WCF: текст типа контента / html; charset = utf-8 ответного сообщения не соответствует типу содержимого привязки

У меня есть служба WCF, работающая на моем локальном сервере IIS. Я добавил его в качестве ссылки на сайт для проекта C # Website, и он добавляет штраф и автоматически генерирует classы прокси.

Однако, когда я пытаюсь вызвать любой из контрактов на обслуживание, я получаю следующую ошибку:

Описание: Необработанное исключение возникло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде.

Сведения об исключении: System.ServiceModel.ProtocolException: тип содержимого text / html; charset = utf-8 ответного сообщения не соответствует типу содержимого привязки (application / soap + xml; charset = utf-8). Если вы используете пользовательский кодер, убедитесь, что метод IsContentTypeSupported реализован правильно. Первые 1024 байта ответа были: «function bredir (d, u, r, v, c) {var w, h, wd, hd, bi; var b = false; var p = false; var s = [[ 300250, ложный], [250250, ложный], [240400, ложный], [336280, ложный], [180150, ложный], [468,60, ложный], [234,60, ложный], [88,31, ложь], [120,90, ложный], [120,60, ложный], [120240, ложный], [125125, ложный], [728,90, ложный], [160600, ложный], [120600, ложный] , [300600, ложный], [300125, ложный], [530300, ложный], [190200, ложный], [470250, ложный], [720300, верно], [500350, верно], [550480, правда]]; if (typeof (window.innerHeight) == ‘number’) {h = window.innerHeight; w = window.innerWidth;} else if (typeof (document.body.offsetHeight) == ‘number’) {h = document. body.offsetHeight; w = document.body.offsetWidth;} for (var i = 0; i

У меня также есть консольное приложение, которое также взаимодействует с WCF-сервисом, и консольное приложение умеет эффективно вызывать методы, не получая эту ошибку.

Ниже приведены выдержки из моих конфигурационных файлов.

Служба WCF Web.Config:

                                

Веб-сайт Project Service Client Web.Config :

                      

Это моя первая попытка создать WCF, так что это все очень новое. Буду признателен за любую оказанную помощь.

Благодарю.

15 Solutions collect form web for “Клиент службы WCF: текст типа контента / html; charset = utf-8 ответного сообщения не соответствует типу содержимого привязки”

Попробуйте выполнить поиск в http: //localhost/ScraperService.svc в веб-браузере на сервере, на котором размещена служба, с использованием тех же учетных данных Windows, которые обычно выполняются клиентом.

Я предполагаю, что IIS отображает сообщение об ошибке html некоторого описания вместо того, чтобы возвращать xml, как ожидалось.

Это также может произойти, если у вас есть HTTP-прокси-сервер, который выполняет фильтрацию через Интернет. Мой опыт с ContentKeeper заключается в том, что он перехватывает любой трафик http / https и блокирует его как «Неуправляемый контент» – все, что мы получаем, это сообщение об ошибке html. Чтобы этого избежать, вы можете добавить правила исключения прокси-сервера в Internet Explorer, чтобы прокси-сервер не перехватывал трафик на ваш сайт:

Панель управления> Свойства обозревателя> Соединения> Параметры локальной сети> Дополнительно> Настройки прокси-сервера

введите описание изображения здесь

Ответ HTML от веб-сервера обычно указывает, что вместо ответа от службы WCF была показана страница с ошибкой. Мое первое предложение было бы проверить, что пользователь, у которого работает клиент WCF, имеет доступ к ресурсу.

что вы пытаетесь получить доступ к службе с помощью wsHttpBind, которые по умолчанию используют защищенные зашифрованные сообщения (защищенные сообщения). С другой стороны, netTcpBind использует защищенные зашифрованные каналы. (Обеспеченный транспорт) … НО basicHttpBind, не требует никакой безопасности вообще и может получить доступ к анонимным

ТАК. на стороне сервера, добавьте \ Измените это в свою конфигурацию.

           

затем добавьте изменение своей конечной точки в

  

Это должно сделать это.

У меня была аналогичная проблема. Я разрешил это, изменив

  

в

  

а также изменил мой URL-адрес, чтобы использовать https: // вместо http: //.

Также в узле измените

 binding="basicHttpBinding" 

в

 binding="basicHttpsBinding" 

Это сработало.

В моем случае правило перезаписи URL-адресов было испорчено с моим именем службы, оно было переписано как строчное, и я получал эту ошибку.

Убедитесь, что вы не выполняете строчные вызовы службы WCF.

Как и во многих случаях, в моей ситуации я тоже получал это из-за ошибки. И, к сожалению, я мог просто прочитать CSS страницы html error.

Источником моей проблемы было также правило перезаписи на сервере. Он переписывал http на https.

Вы можете проверить конфигурацию своей службы и убедиться, что все в порядке. Вы можете перейти к веб-сервису через браузер, чтобы увидеть, будет ли схема отображаться в браузере.

Вы также можете просмотреть учетные данные, используемые для вызова службы.

Я попробовал все вышеперечисленные предложения, но в итоге работала с измененным конвейером, управляемым пулом приложений, от интегрированного режима до classического.
Он работает в своем собственном пуле приложений, но это был первый сервис .NET 4.0 – все остальные сервисы на .NET 2.0, используя встроенный режим конвейера. Его стандартным сервисом WCF является https, но на сервере 2008 (не R2) – с использованием IIS 7 (не 7.5).

У меня была аналогичная ситуация, но клиентская конфигурация использовала basicHttpBinding. Проблема заключалась в том, что служба использовала SOAP 1.2, и вы не можете указать SOAP 1.2 в basicHttpBinding. Я изменил конфигурацию клиента, чтобы вместо этого использовать customBinding, и все сработало. Вот подробности моего customBinding для справки. Служба, которую я пыталась использовать, была через HTTPS с использованием UserNameOverTransport.

            

Даже если вы не используете сетевой прокси, включение «Автоматическое обнаружение настроек» в диалоговом окне прокси делает это исключение.

введите описание изображения здесь

В моем проектном проекте WCF эта проблема связана с ссылкой на другую версию System.Web.Mvc.dll. Таким образом, это может быть проблема совместимости с другой версией DLL

Когда я использую

System.Web.Mvc.dll версия 5.2.2.0 -> это вызывает ошибку Тип контента text / html; charset = utf-8 ответного сообщения

но когда я использую System.Web.Mvc.dll версии 4.0.0.0 или ниже -> он отлично работает .

Я не знаю причины проблемы с другой версией DLL, но, изменив верификацию DLL, она работает для меня.

Эта ошибка даже генерируется при добавлении ссылки другого проекта в проект WCF, и этот справочный проект имеет другую версию DLL System.Web.Mvc или может быть любой другой DLL.

X ++ binding = endPoint.get_Binding(); binding.set_UseDefaultWebProxy(false); binding = endPoint.get_Binding(); binding.set_UseDefaultWebProxy(false);

Я решил эту проблему, установив UseCookies в web.config.

    

и настройка enableVersionHeader

    

Если вы используете как wshttpbinding вместе с https-запросом, затем я разрешил его, используя приведенное ниже изменение конфигурации.

      

Для меня проблема была решена, когда я прокомментировал следующую строку в Web.config

  
  • jqgrid добавить строку и отправить данные в webservice для вставки
  • asp.net asmx веб-сервис возвращает xml вместо json
  • различия в приложении / json и application / x-www-form-urlencoded
  • Как использовать WSDL
  • Ошибка в клиенте WCF, использующем веб-службу Axis 2 с WS-Security. Имя пользователя: Token PasswordDigest.
  • Отчеты в SOA (Business Intelligence & Service Oriented Architecture)
  • Каковы различия между веб-службами WCF и ASMX?
  • Лучший способ вызова JSON WebService из .NET Console
  • Выбор SSL-сертификата клиента в Java
  • Java: функция переопределения для отключения проверки сертификата SSL
  • Каковы накладные расходы на создание нового HttpClient на один вызов в клиенте WebAPI?
  • Interesting Posts

    Eclipse экспортирован Runnable JAR, не отображающий изображения

    Показывать доступные для пользователя размеры файлов в команде PowerShell по умолчанию

    Вычисления без последствий (ака последовательности)

    Исключить определенные сайты или URL-адреса из результатов поиска Google?

    Runnable JARs отсутствуют Изображения / Файлы (Ресурсы)

    Создание запланированных задач

    Что означает == $ 0 (double equals dollar zero) в инструментах разработчика Chrome?

    Есть ли альтернатива виртуализации для обработки двух разных интерфейсов, разных сетей и одного и того же диапазона IP?

    Я хочу, чтобы настройки безопасности Macintosh определялись положением и автоматическим

    Как отсортировать один вектор, основанный на значениях другого

    Как использовать определения в схеме JSON (draft-04)

    Легко переключаться между Mac и ПК каждый день

    Как отправить данные в виде данных формы вместо полезной нагрузки запроса?

    Неверная операция поперечного streamа: Control ‘textBox1’, доступ к которому осуществляется из streamа, отличного от streamа, который был создан на

    JSP-страница без HTML-кода для экспорта данных в Excel-лист

    Давайте будем гением компьютера.