Назад | Перейти на главную страницу

Веб-службы IIS 7 WCF дают ошибку 404 через HTTPS

У меня есть некоторые веб-службы WCF, работающие под IIS 7.5, которые правильно отвечают на HTTP-запросы, но отвечают ошибками 404 (Not Found) при вызове методов с использованием SSL.

Привязки для сайта следующие:

При звонке http://127.0.0.1:8088/Public/PublicDataService.svc Получаю ожидаемый ответ:

Вы создали услугу.

Чтобы протестировать эту службу, вам нужно будет создать клиента и использовать его для вызова службы. Вы можете сделать это с помощью инструмента svcutil.exe из командной строки со следующим синтаксисом: и т. Д.

И аналогично вызов любого из методов службы работает, есть самый простой метод, называемый CanConnect, который просто возвращает "истину".

http://127.0.0.1:8088/Public/PublicDataService.svc/CanConnect

правда

При использовании https результат будет следующим.

https://127.0.0.1/Public/PublicDataService.svc

Вы создали услугу.

Чтобы протестировать эту службу, вам нужно будет создать клиента и использовать его для вызова службы. Вы можете сделать это с помощью инструмента svcutil.exe из командной строки со следующим синтаксисом:

https://127.0.0.1/Public/PublicDataService.svc/CanConnect

Ошибка сервера в приложении '/ Public'.

Ресурс не найден.

Описание: HTTP 404. Ресурс, который вы ищете (или одна из его зависимостей), мог быть удален, изменилось его имя или временно недоступен. Просмотрите следующий URL-адрес и убедитесь, что он написан правильно.

Запрошенный URL: /Public/PublicDataService.svc/CanConnect

Информация о версии: Microsoft .NET Framework Версия: 4.0.30319; Версия ASP.NET: 4.6.1055.0

Это меня полностью озадачило, как может вызывать .svc работу, но его внутренние методы дают 404? Чтобы сделать ситуацию еще более запутанной, это работало ... на самом деле я даже не уверен, когда он остановился, т.е. соответствует ли это выпуску кода или серверным исправлениям и т. Д.

Фактическая конфигурация веб-сайта такова:

Webservices (this is the root of the application / where the Web.Config sits)
- Public (a windows directory, no addition config)

Есть ряд других сервисов, которые запускаются непосредственно под корневым каталогом, которые нормально работают как под http, так и с https.

Любые идеи относительно того, что может быть причиной этого.

Оказывается, это просто ошибка в файле web.config.

Эти два ответа на SO были решением:

https://stackoverflow.com/a/26581326/1286358

И наоборот

https://stackoverflow.com/a/26539003/1286358

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

РЕДАКТИРОВАТЬ: Фактическое исправление для полноты

Следующее было в web.config было изменено с "none" на "Transport"

<system.serviceModel>
    <bindings>
        <webHttpBinding>
            <binding>
                <security mode="Transport" />