Лучший способ поговорить с сервисом Windows WCF с других компьютеров и Unix? - PullRequest
0 голосов
/ 01 февраля 2011

Привет, я хочу создать службу Windows, которая говорит о низкой скорости USB-оборудования, подключенного к настольному ПК.

Мне бы хотелось, чтобы методы службы Windows могли вызываться из другого программного обеспечения на этом ПК и других ПК / Unix-клиентов в локальной сети.

Учитывая низкоскоростной характер данных (только случайные постоянные запросы прогресса USB-устройства) - имеет ли смысл использовать для этого привязку http WCF по умолчанию или я должен искать привязку TCP или сокеты для этого?

Большое спасибо

Ответы [ 3 ]

0 голосов
/ 01 февраля 2011

Я бы пошел на связывание по протоколу tcp, так как оно разработано и оптимизировано для межмашинной связи с двоичным кодированием сообщений. http был бы более гибким и подходящим для клиентов. Вы даже можете позвонить в ваши службы без специальной настройки клиента.

0 голосов
/ 03 февраля 2011

Зачем ограничивать себя одним обязательным? Вы можете легко представить несколько конечных точек, конечную точку NetTcp для других клиентов Windows в локальной сети (которые быстрее, чем общение по протоколу HTTP); конечная точка BasicHttp для не-Windows клиентов в сети; для других служб на той же машине вы можете даже выставить конечные точки NamedPipes, которые даже превосходят NetTcp по скорости. Это красота WCF! Создайте сервис один раз и выставьте как хотите: -D

Имейте в виду, что если вы решите разместить свой сервис с IIS7, это не повлияет на производительность, если вы используете конечные точки NamedPipes / NetTcp / BasicHttp, так как все равно должно проходить через HTTP.

0 голосов
/ 01 февраля 2011

возможно, вы можете создать httplistener и перехватить запрос на него для отправки или получения данных.

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

[править] или вы можете использовать restful wcf сервис по той же причине (но клиентам придется иметь дело с xml)

...