Как определить LocalEndPoint для использования клиентом WCF при вызове службы WCF (если клиентский компьютер имеет несколько IP-адресов)?
У меня есть машина, расположенная в DMZс двумя 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-адресу перед отправкой исходящего запроса