Skip to content
February 1, 2012 / ahriman hpc mode

[Перевод] Что нового в WCF 4.5? Точка входа HTTPS для IIS

Оглавление:

1. Что нового в WCF 4.5? Начнём с конфигурации WCF
2. Что нового в WCF 4.5? Один WSDL-файл.
3. Что нового в WCF 4.5? Подсказки конфигурации и intellisense в файлах конфигурации
4. Что нового в WCF 4.5? Проверки конфигурации
5. Что нового в WCF 4.5? Поддержка множественной аутентификации на одну точку входа в IIS
6. Что нового в WCF 4.5? Точка входа HTTPS для IIS
7. Что нового в WCF 4.5? BasicHttpsBinding
8. Что нового в WCF 4.5? Изменения в режиме совместимости ASP.NET
9. Что нового в WCF 4.5? Улучшенный стриминг в IIS

Это шестой пост в серии о WCF 4.5 . В предыдущем посте мы обсудили новые фичи по аутентификации для сервисов, размещенных в IIS, этот пост продолжает список новых фич, связанных с размещением в IIS. Мы поговорим об автоматической точке входа HTTPS для IIS.

Что же это такое? В WCF 4 была представлена фича стандартной точки входа, которая позволяла хосту сервиса автоматически создавать стандартные точки входа в случае если для сервиса не было сконфигурировано ни одной точки входа. Стандартные точки входа создаются для каждого из базовых адресов хоста сервиса согласно маппингу между схемой базового адреса (HTTP,TCP…) и соответствующей привязкой. Если у вас есть базовый адрес HTTP, вы получите точку входа, которая использует привязку BasicHttp.

В WCF 4.5 появляется ещё один маппинг схемы для HTTPS, поэтому если у вас есть IIS с активированным SSL и у вас не определено ни одной точки входа для сервиса, вы получите точки входа HTTP и HTTPS. Стандартной привязкой для схемы HTTPS является та же самая привязка, что и для HTTP – BasicHttp.

Как включить эту фичу?

1. Настройте в IIS SSL; Отличный tutorial.

2. Создайте сервис WCF и разместите его в веб-приложении.

3. Разместите веб-приложение в IIS.

4. Убедитесь, что для сервиса не сконфигурированы точки входа, чтобы он использовал стандартные точки входа.

 

Вот и всё!

Если вы теперь перейдете на файл WSDL, вы заметите две стандартных точки входа HTTP и HTTPS:

clip_image001

Ничего странного не видите? Вы правы. По какой-то причине обе точки входа используют различные имена машин в адресе.

Со времен WCF 4 сервисы размещенные в IIS автоматически используют поведение useRequestHeadersForMetadataAddress, которое формирует точку входа согласно хостнейму, содержащемуся в запросе WSDL GET. Это поведение особенно необходимо для веб-ферм, когда клиенты видят специальный хостнейм, но не само имя машины, но, как вы видите, автоматическая точка входа HTTPS по какой-то причине использует имя машины, что может быть проблемой, если сервер IIS является частью веб-фермы.

Если у вас активирован SSL в IIS, но вы не заинтересованы в точке входа HTTPS, вы можете убрать ее, удалив маппинг схемы HTTPS, как показано ниже:

<system.serviceModel>
    <protocolMapping>
        <remove scheme="https"/>
    </protocolMapping>    
    . . .        
</system.serviceModel>

Новая фича очень полезна, если вам необходимы точки входа hTTPS, так как ранее, если нам необходимо было сконфигурировать точки входа HTTPS, мы не могли использовать стандартные точки входа и нам необходимо было объявлять все точки входа вручную, как HTTP, так и HTTPS. Еще один шаг к минимизации файлов конфигурации.

К сожалению, есть баг в хостнейме, надеюсь, к новой версии его починят.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: