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

时间:2011-02-01 20:31:20

标签: windows wcf unix wcf-binding

您好我想创建一个Windows服务,该服务可以说明连接到台式PC的低速USB硬件。

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

考虑到数据的低速性质(只是偶尔会对USB设备的进展请求) - 为此使用默认的http WCF绑定是否有意义,或者我应该为此查看TCP绑定或套接字?

非常感谢

3 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

为什么要限制自己一个绑定?您可以轻松地为LAN上的其他Windows客户端公开多个端点,NetTcp端点(比通过HTTP协议进行通信更快);网络上非Windows客户端的BasicHttp端点;对于同一台机器上的其他服务,您甚至可以公开NamedPipes端点,甚至可以提高NetTcp的速度。这就是WCF的美丽!构建服务一次,然后公开你想要的:-D

请注意,如果您选择使用IIS7托管您的服务,那么无论您使用NamedPipes / NetTcp / BasicHttp端点都不会产生任何性能差异,因为无论如何都必须通过HTTP。