Как настроить конечные точки службы для службы WCF за выгруженным SSL с HTTPS в WSDL - PullRequest
2 голосов
/ 23 февраля 2012

Моя среда развертывания имеет оборудование для разгрузки SSL (и распределения нагрузки) перед моей службой WCF, размещенной в IIS 7.5. Так что пока внешний мир уйдет на

https://mydomain.com/MyService.svc

аппаратное обеспечение будет обрабатывать SSL и перенаправлять трафик на

http://myintranet/MyService.svc

Однако, когда я беру WSDL извне (нажав «? Wsdl»), адрес WSDL предназначен для «http://mydomain.com/MyService.svc" - небезопасная, не-SSL-версия моего публичного адреса.

Я попытался явно установить listenUri, но я получаю сообщение об ошибке, потому что моему сайту также требуются множественные привязки (я могу получить к нему внутренний доступ за пределами SSL-разгрузки, но через балансировщик нагрузки или обойти балансировщик нагрузки и добраться до сайта (с) напрямую):

When 'system.serviceModel/serviceHostingEnvironment/multipleSiteBindingsEnabled' is set to true in configuration, the endpoints are required to specify a relative address. If you are specifying a relative listen URI on the endpoint, then the address can be absolute.

Я пробовал многочисленные комбинации baseAddresses, префиксных фильтров, нескольких конечных точек и т. Д., Но всегда приводил к той или иной ошибке. Несмотря на мой лучший поиск в Google, я не могу найти никого другого с этой настройкой.

Ответы [ 2 ]

0 голосов
/ 23 мая 2014

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

По сути, мы используем «httpsViaProxyTransport», который мы создали из примера кода, который мы нашли в дикой природе.Это убеждает WCF в том, что это безопасный транспорт, хотя на самом деле это просто HTTP.

Затем в /configuration/system.serviceModel/serviceHostingEnvironment мы устанавливаем некоторые baseAddressPrefixFilters.Мы устанавливаем как HTTP, так и HTTPS, потому что мы иногда обращаемся к ним за пределами NLB / SSL-оффлоадера.

        <baseAddressPrefixFilters>
          <add prefix="http://MyService.mydomain.com/"/>
          <add prefix="https://MyService.mydomain.com/"/>
        </baseAddressPrefixFilters>
0 голосов
/ 01 ноября 2013

У нас адски разгрузка SSL для работы с WCF.Проблема заключается в том, что один и тот же переключатель конфигурации определяет разрешенный протокол (который должен быть http) и протокол, передаваемый прокси (который должен быть https).Наш ответ - отменить требование разгрузки SSL.Возможно, мы слишком легко сдались.

Если вы более упорны, чем мы, вы можете попробовать использовать собственный экспортер WSDL, как описано здесь .

...