Как получить доступ к службе WCF SOAP через прокси-сервер LTM через PowerShell?

Я использую PowerShell для доступа к службе WCF SOAP. Все это безрассудно идет прямо на хосте конечной точки WCF. Я использую:

$request = New-WebServiceProxy -uri ${using:endpoint}"?wsdl" -class "MyService" -namespace "MS"

У меня есть новый сервер, который сидит за менеджером локального трафика F5 (LTM). Когда я пытаюсь сделать то же самое, я получаю ошибки, потому что возвращаемый WSDL содержит ссылки на сам сервер, который недоступен, а не на конечную точку LTM.

Это приводит к:

The document was understood, but it could not be processed.
  - The WSDL document contains links that could not be resolved.
  - There was an error downloading 'http://myhost/MyService/MyService.svc?xsd=xsd0'.
  - Unable to connect to the remote server
  - No connection could be made because the target machine actively refused it 192.168.1.1:80
    + CategoryInfo          : InvalidOperation: (http://192.168.1...ervice.svc?wsdl:Uri) [New-WebServiceProxy], Invalid
   OperationException
    + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.NewWebServiceProxy
    + PSComputerName        : localhost

Что мне нужно, чтобы LTM host/IP отображался в WSDL? Есть ли какая-то настройка в файле web.config, которую мне не хватает?

1 ответ

Решение

Добавьте следующее в ваш файл web.config:

<system.serviceModel>
  <behaviors>
    <serviceBehaviors>
      <behavior>
        <useRequestHeadersForMetadataAddress />

Без вышесказанного WCF получит URL для представления из IIS. Вы также можете добавить заголовки узлов к привязке сайта / приложения, в котором размещен WCF, он будет использовать его вместо этого.

Другие вопросы по тегам