Настройка HTTP и HTTPS

Службы и клиенты WCF могут взаимодействовать по протоколам HTTP и HTTPS. Параметры HTTP/HTTPS задаются с помощью служб IIS или посредством использования средства командной строки. Когда служба WCF размещается в службах IIS, параметры HTTP или HTTPS можно задать в службах IIS (с помощью средства inetmgr.exe). Если служба WCF является резидентной, параметры HTTP или HTTPS задаются с помощью средства командной строки.

Как минимум, необходимо настроить регистрацию URL-адресов и добавить исключение брандмауэра для URL-адреса, который будет использоваться вашей службой. Эти параметры можно настроить с помощью средства Netsh.exe.

Настройка резервирований пространств имен

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

Запущенное приложение может создать аналогичный запрос для добавления регистраций пространства имен. Регистрации и резервирования конкурируют за части пространства имен. Резервирование может иметь приоритет над регистрацией в соответствии с порядком разрешения, заданного в порядке разрешения между утверждениями пространства имен, которые включают в себя дикие карта. В этом случае резервирование не позволяет запущенному приложению получать запросы.

В следующем примере используется средство Netsh.exe.

netsh http add urlacl url=http://+:80/MyUri user=DOMAIN\user

Эта команда добавляет резервирование URL-адресов для указанного пространства имен URL-адресов для учетной записи DOMAIN\user. Дополнительные сведения об использовании команды netsh введите netsh http add urlacl /? в командной строке и нажмите клавишу ВВОД.

Настройка исключения брандмауэра

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

Настройка SSL-сертификатов

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

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

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

Настройка списка ожидания передачи данных по протоколу IP

API HTTP-сервера привязывается к IP-адресу и порту только после регистрации URL-адреса пользователем. По умолчанию API HTTP-сервера привязывается к порту в URL-адресе для всех IP-адресов компьютера. Конфликт возникает, если приложение, которое не использует API HTTP-сервера, ранее привязано к такому сочетанию IP-адреса и порта. Список прослушивания IP-адресов позволяет службам WCF сосуществовать с приложениями, используюющими порт для некоторых IP-адресов компьютера. Если в списке ожидания передачи данных по протоколу IP содержатся какие-либо записи, API HTTP-сервера привязывается только к IP-адресам, указанным в списке. Для изменения списка ожидания передачи данных по протоколу IP требуются привилегии администратора.

Используйте средство netsh для изменения списка прослушивания IP-адресов, как показано в следующем примере:

netsh http add iplisten ipaddress=0.0.0.0:8000

Другие параметры конфигурации

При работе с привязкой WSDualHttpBinding клиентское соединение использует значения по умолчанию, совместимые с резервированием пространства имен и брандмауэром Windows. При необходимости настроить базовый адрес клиента для двустороннего соединения, необходимо, кроме того, настроить эти параметры HTTP в клиенте так, чтобы они соответствовали новому адресу.

API HTTP-сервера имеет некоторые расширенные параметры конфигурации, недоступные через HttpCfg. Эти параметры сохраняются в реестре и применяются ко всем приложениям, выполняемым в системах, которые используют API HTTP-сервера. Дополнительные сведения об этих параметрах см. в разделе Http.sys параметров реестра для IIS. Большинству пользователей не нужно изменять эти параметры.

См. также