2013-04-01 8 views
0

У меня есть решение, которое действует как обслуживание клиентов и выполняет некоторые фоновые работы. Это приложение требует некоторых настроек (которые читаются из xml-файла), которые должны выполняться во время установки и которые периодически пересматриваются. Для удобства (поскольку эта служба установлена ​​на нескольких компьютерах), я хотел удаленно управлять этими параметрами из центрального серверного приложения. Это отлично работает, если сервер и клиент находятся внутри локальной сети, но я бы хотел управлять этими настройками, даже если клиент находится за пределами сети или сервер находится за брандмауэром. Какими могут быть решения для этого?Удаленное управление настройками приложения

+0

Вы уверены, что все ваши клиенты оценят это? И их сотрудники службы безопасности? –

ответ

0

Очевидно, что решение зависит от того, чего вы хотите достичь. Но если я правильно понимаю, причина, по которой у вас возникают проблемы с брандмауэром, заключается в том, что вы просто получаете доступ к файлу, содержащему XML через сеть, используя стандартный доступ к сетевому файлу. Что обычно (по уважительной причине) заблокировано брандмауэром.

Таким образом, решение тогда будет заключаться в использовании стандартного протокола и «нестандартной службы». Например, если машине разрешено включать HTTP-запросы, вы можете использовать почтовые сообщения на основе HTTP для обновления содержимого XML, либо отправить весь файл в виде загрузки файла, либо составить свой собственный протокол удаленного доступа. Если HTTP не разрешен, вам нужно посмотреть, какие другие «дыры» есть в брандмауэре, и сделать что-то подобное с другим «дырками».

Другим, менее неясным решением является, конечно, простое использование удаленного рабочего стола или защищенного соединения для удаленного доступа к машине. Конечно, опять же, предполагая, что такое подключение разрешено.

Существует не волшебное решение «обходного брандмауэра» - вам нужно как-то работать в рамках правил брандмауэра.

+0

Я думал об использовании промежуточного общедоступного сервера, который будет обслуживать все клиентские службы, но мне не хотелось бы, чтобы сервер-посредник хранил файлы настроек (поскольку у меня нет необходимого оборудования), но только для промежуточной связи между клиентские службы и сервер с настройками, что-то похожее на то, как работает протокол bittorent. Но я не уверен, как установить соединение между клиентской службой и сервером настроек, если они находятся в разных сетях. Возможно, я мог бы использовать реализацию сервера STUN или переадресацию портов. –

Смежные вопросы