Я хочу начать с того, что знаю, что существуют другие (лучшие?) способы реализации
этого решения. Но из-за некоторых ранее существовавших конструктивных соображений/ограничений я вынужден использовать:
- netTcpBinding
- DuplexChannelFactory для поддержки двунаправленной связи
Все приложения, службы и т. д. находятся на одном компьютере, поскольку мы будем
устанавливать все на одно выделенное оборудование под управлением MS Windows.
Итак, схема выглядит примерно так
WPFApp1
(содержит определение ReportingFacilityInterface)
Возвращает уведомления в виде отдельных обратных вызовов в WPFApp2
^
|
|
V
ReportingFacilityInterfaceProxy
^
|
|
V
WPFApp2 (необходимо вызвать открытые методы объекта WPF1 ReportingFacilityInterface)
Я создал свой класс службы и контракты WCF.
Я использую прокси-библиотеку dll для облегчения связи.
Вот последовательность событий:
1) WPFApp1 запускается и создает экземпляр предоставленной службы класс
Код: Выделить всё
ReportingFacilityInterface = new ReportingFacility.ReportingFacilityInterface();
2) WPFApp2 запускается и инициализирует экземпляр прокси-объекта
Код: Выделить всё
reportingFacilityProxy = new ReportingFacilityInterfaceProxy.ReportingFacilityProxy();
Код: Выделить всё
reportingFacilityInterface = DuplexChannelFactory.CreateChannel(objContext, "RPIEndPointConfiguration");
3) WPFApp2 вызывает объект (через прокси)
Код: Выделить всё
reportingFacilityInterface.Initialize(configuration);
Не удалось подключиться к net.tcp://localhost:8732/ReportingFacility.
Попытка подключения продолжалась 00:00:02.1931255.
Код ошибки TCP 10061: соединение не может быть установлено, поскольку целевая машина активно отказалась от него 127.0.0.1:8732
Я проверил текущее использование порта с помощью приложения CurrPorts и заметил, что порт № 8732 отсутствует в списке активных/используемых портов на моем компьютере.
Поскольку я довольно зеленый в мире WCF, Я здесь в замешательстве.
Как я уже упоминал выше, все они работают на одном и том же (выделенном) оборудовании Windows 7, поэтому разрешения/роли не должны быть проблемой.
Думаю, я довольно близок к этому, но я просто что-то упускаю.
Спасибо,
JohnB
Подробнее здесь: https://stackoverflow.com/questions/159 ... o-communic
Мобильная версия