Я пытаюсь решить, что является наиболее подходящим способом обработки дуплексной связи между двумя процессами .Net, работающими на одном сервере или в локальной сети. У нас есть два процесса, которые должны иметь возможность вызывать методы друг на друге.
В настоящее время мы используем WCF с каналами NamedPipe или Tcp и регистрируем ProcessA в ProcessB. В нашем контракте WCF указан интерфейс обратного вызова, поэтому ProcessB может затем вызывать методы для ProcessA.
Мой вопрос: что из следующего имеет смысл, является более простым и более надежным?
- Пусть ProcessB использует интерфейс обратного вызова (поддерживаемый WCF) для вызова методов в ProcessA.
- При регистрации ProcessA передает ProcessB необходимую информацию для ProcessB, чтобы зарегистрироваться в ProcessA, используя новый канал?
Я не совсем понимаю время жизни прокси-сервера обратного вызова и проблемы с многопоточностью. Я видел различные сообщения о блокировке методов обратного вызова.