Я просто хочу добавить это.
Если вы хотите живучий метод для передачи данных между двумя приложениями, вы можете рассмотреть возможность использования MSMQ или даже использования BizTalk или другой платформы сообщений.
Есть несколько вещей, которые следует учитывать:
- что произойдет, если сервер перезагрузится или отключится?
- Что произойдет, если серверное приложение перестает отвечать на запросы?
- Что произойдет, если серверное приложение будет убито или полностью исчезнет?
- Каков соответствующий ответ клиентского приложения вкаждый из вышеперечисленных?
Каждый из этих контекстов представляет потенциальную потерю данных.Если потеря данных неприемлема, то именованные каналы - это не тот механизм, который вам следует использовать.Вместо этого вам нужно как-то сохранять сообщения.
MSMQ, хранение в базе данных или даже использование Biztalk может позаботиться о живучести самого сообщения.
Если произойдет 1 или 3, тогдаименованный канал исчезает и должен быть воссоздан новым экземпляром вашего серверного приложения.Если произойдет # 2, то канал не исчезнет, пока кто-либо не перезагрузит сервер или не убьет серверное приложение и не запустит его снова.
Независимо от того, клиентское приложение должно решить вышеуказанные проблемы.Они сводятся к проблемам с подключением.В зависимости от того, что делает клиент, он может перевести его в состояние ожидания и позволить ему время от времени пинговать сервер, чтобы узнать, вернется ли он снова.
Не зная природу процессов передачи данных и данных, трудно рекомендовать правильный подход.