Мне нужна двунаправленная межпроцессная коммуникация?
Мне нужно двунаправленно взаимодействовать с несколькими EXE-приложениями, работающими на одном компьютере, с одним управляющим EXE-приложением на том же компьютере, который UDP-соединен с сервером по частной сети. В сети есть несколько компьютеров, на которых работают одни и те же приложения и которые взаимодействуют со своим управляющим приложением.
Оригинальное программное обеспечение было разработано в VB6 с использованием ActiveX COM для приложения управления. Каждое приложение на компьютере, нуждающееся в значениях, запрашивало их у управляющего приложения через COM-интерфейс, который затем передавал запрос на сервер через UDP. Затем запрошенное значение возвращается в управляющее приложение и обратно в запрашивающее клиентское приложение с помощью обратного вызова.
Любые идеи о том, как реплицировать эту функциональность в VB.NET буду очень признателен. Обратный вызов не требуется, если возможны другие схемы уведомления. Я бы хотел избежать каких-либо опросов.
Что я уже пробовал:
Я пробовал использовать COM-класс в исполняемом файле в Visual Studio 2008, и он отлично работает с одним подключенным приложением. Второе приложение, которое пытается войти в приложение управления, нуждается в новом экземпляре.
lmoelleb
Сколько вы можете заменить? Это похоже на то, что вы сделали бы с шиной сообщений, но есть и другие варианты (UDP, как уже используется, именованные каналы,...). Нет никаких проблем с созданием экземпляров COM-объектов из нескольких приложений одновременно, поэтому вы сталкиваетесь с чем-то специфичным для реализации, а не с общим ограничением COM в .NET. И мне просто нужно знать... почему VS2008? Он какой-то... старый...
Member 10796859
Я могу заменить все это. UDP используется только между сетевыми компьютерами через управляющие EXE-файлы. Мне просто нужно несколько приложений, все они подключаются к одному и тому же управляющему EXE через его COM-интерфейс. Я также реализовал схему сообщений для предоставления уведомлений приложениям, но предпочел бы двунаправленный канал связи между приложениями и управляющим EXE. VS2008 устарел, но у него также есть утилита преобразования для обновления VB6 до NET. Я использую его в качестве отправной точки, а затем мигрирую на VS2017/2019. Во всем решении есть много приложений, которые были преобразованы. Это последний раз.