Добрый день!
Дано:
Программа Updater подключается к WCF и проверяет актуальную версию программы.
Программа Мониторинг работает так же с WCF.
2 WCF сервера на Windows Server 2008 R2
Необходимо:
Сконфигурировать конфиги (*.exe.config) клиентских программ на лету таким образом что бы подключение к WCF происходило по внутренним адресам (если ПК находиться в сети предприятия) или внешним адресам (если ПК находиться за пределами предприятия)
Пример:
Кусок кода для подключения по внутреннему адресу:
<endpoint address="http://192.168.2.8:10202/Monitoring" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IMonitoring" contract="svc.IMonitoring"
name="BasicHttpBinding_IMonitoring" />
<endpoint address="net.tcp://192.168.2.8:10203/Monitoring" binding="netTcpBinding"
bindingConfiguration="MetadataExchangeTcpBinding_IMonitoring"
contract="svc.IMonitoring" name="MetadataExchangeTcpBinding_IMonitoring" />
Пример:
Кусок кода для подключения по внешнему адресу:
<endpoint address="http://231.18.50.8:10202/Monitoring" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IMonitoring" contract="svc.IMonitoring"
name="BasicHttpBinding_IMonitoring" />
<endpoint address="net.tcp://231.18.50.8:10203/Monitoring" binding="netTcpBinding"
bindingConfiguration="MetadataExchangeTcpBinding_IMonitoring"
contract="svc.IMonitoring" name="MetadataExchangeTcpBinding_IMonitoring" />
Вопрос:
Как осуществить изменение конфигов на лету? т.е. что бы программа подгрузила рабочий конфиг а не выдала ошибку.
Мои мысли:
При запуске программы Updater проверять доступность сервера по внутреннему адресу если он не доступен то менять ip в конфигах на внешний и повторять попытку.
Вопрос тогда сводиться к тому как отредактировать уже задействованный конфиг программы Updater?