Укажите исходящий IP-адрес для использования с клиентом WCF

Как определить LocalEndPoint для использования клиентом WCF при вызове службы WCF (если клиентский компьютер имеет несколько IP-адресов)?

У меня есть машина, расположенная в демилитаризованной зоне с двумя IP-адресами, внешний IP-адрес можно получить через брандмауэр через VPN-соединение с нашего веб-сервера, расположенного у внешнего поставщика услуг. На этом компьютере запускается пользовательский сервер приложений на основе WCF и Unity, который должен выступать в качестве шлюза уровня прокси или приложения (ALG). Он должен принимать сервисные вызовы от веб-сервера и использовать фабрику клиентов wcf для регенерации сервисных вызовов, переадресовывая их на реальный сервер приложений в локальной сети.

При повторном создании вызовов службы на этом прокси-сервере с использованием фабрики клиентов wcf клиент wcf должен использовать второй внутренний IP-адрес этого компьютера, поскольку только сообщения, поступающие с этого внутреннего IP-адреса, будут проходить через брандмауэр для достижения Сервер приложений в локальной сети. К сожалению, наши прокси-клиенты wcf всегда предпочитают создавать исходящие сообщения, используя первые «внешние» IP-адреса. Я ищу способ явной установки IP-адреса для использования прокси клиента wcf.

Я мог найти только один элемент привязки WCF, который позволяет определить LocalEndPoint или ClientBaseAddress: CompositeDuplexBindingElement. Насколько я понимаю из документации, это свойство предназначено для того, чтобы сообщать серверу, куда отправлять асинхронные ответные сообщения, поэтому настройка отличается от того, что я ищу.

Любая идея, что я могу сделать, чтобы прийти к работоспособному решению?

Заранее спасибо за любой полезный совет!

Это похоже на похожий вопрос, просто используя TcpClient / Sockets вместо WCF:Укажите исходящий IP-адрес для использования с TCPClient / Socket в C #

И еще один, на этот раз относительно SoapClient:Привязка нового SoapClient к определенному IP-адресу перед отправкой исходящего запроса

Ответы на вопрос(3)

Ваш ответ на вопрос