Моя служба wcf следует следующей структуре балансировки нагрузки:
общедоступный (https) -> F5 LB (http) -> node1 / node2.
Я выставляю услуги по схеме http, а F5 LB заботится о разгрузке ssl. поскольку моя служба отображается как http, сгенерированный wsdl через F5 LB содержит URL-адрес на основе http, как показано ниже:
URL моей службы LB:
https://myservice.mydomain.com/service1.svc
и сгенерированная служебная страница:
MyService Service
You have created a service.
To test this service, you will need to create a client and use it to call the service. You can do this using the svcutil.exe tool from the command line with the following syntax:
svcutil.exe http://myservice.mydomain.com/service1.svc?wsdl
You can also access the service description as a single file:
http://myservice.mydomain.com/service1.svc?singleWsdl
как вы заметили, сгенерированная страница имеет URL-адрес http, открытый из узлов приложения. поскольку F5 LB предоставляет службу как https, он не разрешает указанный выше URL-адрес http, и запрос от клиента отскакивает.
теперь, можем ли мы настроить мою службу web.config, чтобы открыть службу по схеме http, но чтобы wsdl указывал на URL-адрес https, чтобы URL-адрес из сгенерированного выше wsdl из F5 LB тоже https и клиент работал по https а запрос от LB придет в службу по http, что моя служба обрабатывает?