Методы IPC для службы Windows

В настоящее время у меня есть служба Windows и отдельный клиент с графическим интерфейсом, ориентированный на .NET 3.5, и я пытаюсь найти лучший способ получить двунаправленную связь между этими двумя процессами. Оба процесса будут работать на одном компьютере с Windows.

Межпроцессное взаимодействие Microsoft страница, кажется, предлагает использовать RPC, Pipes или Sockets для этого конкретного сценария.

Я решил, что именованные каналы, похоже, удовлетворяют моим требованиям, но, оглядываясь вокруг, я также обнаружил . NET Remoting. Кажется, что .NET Remoting был интегрирован в WCF как из .NET 3.0. Насколько я понимаю, WCF использует «именованные каналы» для связи между процессами поэтому я предполагаю, что удаленное взаимодействие .NET и «именованные каналы» как-то перекрываются.

Может кто-нибудь прояснить это, пожалуйста? Я хотел бы понять, следует ли мне использовать Named Pipes, .NET Remoting или WCF.


person keith.g    schedule 18.07.2016    source источник
comment
WCF и .NET Remoting похожи technoliges с .NET Remoting, по сути, является более старой версией WCF. Именованные каналы - это механизм связи, который может использоваться WCF (как и TCP, HTTP, MSMQ и т. Д.). Что именно вы имеете в виду под двунаправленным?   -  person leetibbett    schedule 18.07.2016
comment
Под двунаправленным я подразумеваю, что и сервис, и процесс GUI должны иметь возможность отправлять и получать данные.   -  person keith.g    schedule 19.07.2016


Ответы (1)


WCF заменил как .NET Remoting, так и старые (теперь устаревшие) веб-службы ASMX. Привязка WCF NetNamedPipe является дуплексной (т. Е. Поддерживает двунаправленную связь), и поскольку клиент (приложение с графическим интерфейсом пользователя) и служба Windows находятся на одном компьютере, именованные каналы идеальны.

Однако для использования WCF вам придется написать службу WCF и использовать службу Windows для ее размещения, при этом приложение с графическим интерфейсом пользователя выступает в качестве клиента. Это вполне возможно, и в сети есть много примеров того, как разместить службу WCF в службе Windows.

person Tim    schedule 18.07.2016