Проблема с Сервисом WCF - протокол 'http' не поддерживается. Как решить?

Ваш JSON должен, вероятно, возвращать какой-то объект (хорошо, строковое представление этого).

"{ myDate : Date(1224043200000) }"

Используя jQuery, можно получить доступ объекту данных этот путь:

$.get(
    "myJSONFile.php",
    function (data) {
        // data.myDate will be a date object.

        // to show in a short date format (eg: dd/mm/yyyy)
        alert (
            data.myDate.getDate() + "/"
            + (data.myDate.getMonth() + 1) + "/"
            + data.myDate.getFullYear()
        ); // alerts: "15/10/2008"
    }
);
7
задан Community 8 February 2017 в 14:13
поделиться

2 ответа

Ответ для меня было следующее (предоставлено Lazarus в комментариях, но не вернулся для публикации в качестве ответа):

  1. Запущен Диспетчер информационных служб Интернета (IIS) .
  2. Открыт в папке Сайты и выбран соответствующий сайт .
  3. Щелкните правой кнопкой мыши , затем выбрал Управление веб-сайтом , а затем Дополнительные настройки ...
  4. В появившемся всплывающем окне я ввел http в строку Включенные протоколы .
  5. Закрыл всплывающее окно и перезапустил Сайт, вот и все. Исправлено!
5
ответ дан 7 December 2019 в 07:49
поделиться

Я обнаружил, что почти всегда проблема связана со способом настройки конечной точки , привязок и / или поведения .

По большей части, если ваш веб-сайт в IIS не имеет привязки HTTP, не забудьте явно установить httpGet httpGetEnabled = 'false' в конфигурации / system.serviceModel / behavior / serviceBehaviors / behavior / serviceMetadata конфигурация, соответствующая вашей службе WCF. Путь выше, конечно, относится к вашему файлу web или app.config.

Кроме того, если у вас есть конечная точка, в адресе которой есть «http: //», удалите ее. WCF обращает внимание на эти вещи и выдает то же неоднозначное сообщение об ошибке. Существует целый лабиринт неправильных конфигураций, которые приводят к одним и тем же сообщениям об ошибках. (Я ненавижу это в WCF.) Я сказал, что это было более конкретно: «Эй, думм, как #! У вас есть HTTP на одном из адресов вашей конечной точки, но IIS не имеет привязки HTTP!» ; P По крайней мере, так я не буду гнаться за своим хвостом.

Точно так же я никогда не использую конечные точки mex , поскольку они создают больше проблем, чем они того стоят. Вместо этого используйте атрибуты httpsHelpPageUrl и httpsHelpPageEnabled в конфигурационном элементе / system.serviceModel / behavior / serviceBehaviors / behavior / serviceDebug (при условии, что вы используете HTTPS ).

1
ответ дан 7 December 2019 в 07:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: