Как передать сообщение из одной программы в другую? - PullRequest
2 голосов
/ 03 марта 2009

У меня есть приложение .Net 3.0, которому нужно передать целое число другой программе на том же компьютере. Я использовал службу WCF для этого, но столкнулся с проблемами прав пользователя при попытке ХОСТИНГА службы на локальной машине. Мы будем очень благодарны за любые мысли о том, как этого добиться.

Спасибо

Dave

Ответы [ 5 ]

4 голосов
/ 03 марта 2009

WCF - все еще путь сюда.

Как правило, для межпроцессного взаимодействия на одной и той же машине вы используете канал именованного канала. Если вы не используете это, я предлагаю вам сделать, а затем определить, в чем заключается ошибка хостинга.

Если в обеих программах есть циклы сообщений, которые обрабатываются, и вы отправляете целое число, вы также можете использовать вызов SendMessage через слой P / Invoke, но это только потому, что вы отправляете данные, равные или меньше, чем позволяет SendMessage. Большие сообщения требуют что-то вроде WCF.

2 голосов
/ 03 марта 2009
0 голосов
/ 14 сентября 2016

WCF - это путь. Вы должны использовать NetNamedPipeBinding для обеспечения связи на том же компьютере.
Подробнее о WCFBindings https://msdn.microsoft.com/en-us/library/ms730879(v=vs.110).aspx

0 голосов
/ 03 марта 2009

Как вы хостинг? Обратите внимание, что программе без прав администратора, использующей http, потребуются разрешения для использования порта (в http.sys). Это через netsh (Vista) или (IIRC) httpcfg (XP).

См. здесь , например.

0 голосов
/ 03 марта 2009

.NET Remoting - это способ передачи сообщений между программами.

...