从其他PC和Unix与WCF windows服务通话的最佳方式?

从其他PC和Unix与WCF windows服务通话的最佳方式?,windows,wcf,unix,wcf-binding,Windows,Wcf,Unix,Wcf Binding,您好,我想创建一个windows服务,与连接到桌面PC的低速USB硬件连接 我希望windows服务的方法可以从该PC上的其他软件以及LAN上的其他PC/Unix客户端调用 考虑到数据的低速特性(只是USB设备进程的偶尔staus请求),使用默认http WCF绑定对此有意义吗?还是应该查看TCP绑定或套接字 非常感谢也许您可以创建一个httplistener并拦截发送或接收数据的请求 此解决方案的强大之处在于http几乎是通用的,任何其他计算机都可以向您的服务发送请求 [编辑]或者您也可以出于

您好,我想创建一个windows服务,与连接到桌面PC的低速USB硬件连接

我希望windows服务的方法可以从该PC上的其他软件以及LAN上的其他PC/Unix客户端调用

考虑到数据的低速特性(只是USB设备进程的偶尔staus请求),使用默认http WCF绑定对此有意义吗?还是应该查看TCP绑定或套接字


非常感谢

也许您可以创建一个httplistener并拦截发送或接收数据的请求

此解决方案的强大之处在于http几乎是通用的,任何其他计算机都可以向您的服务发送请求


[编辑]或者您也可以出于同样的原因使用restful wcf服务(但客户端必须处理xml)

我会选择net tcp绑定,因为它是为跨机器通信设计和优化的,采用二进制消息编码。http将更加灵活,并且可以跨客户端进行评估。您甚至可以在没有特殊客户端设置的情况下调用您的服务。

为什么要将自己限制为一个绑定?您可以轻松公开多个端点,一个用于局域网上其他windows客户端的NetTcp端点(比通过HTTP协议进行通信更快);网络上非windows客户端的BasicHttp端点;对于同一台机器上的其他服务,您甚至可以公开一个NamedPipes端点,它甚至可以在速度上超过NetTcp。这就是WCF的魅力所在!构建一次服务,并按您的意愿公开:-D

但请注意,如果您选择使用IIS7托管服务,那么无论您使用NamedPipes/NetTcp/BasicHttp端点,都不会对性能产生任何影响,因为所有内容都必须通过HTTP