【发布时间】:2013-02-24 13:07:33
【问题描述】:
我们正计划实施我们的新软件应用程序,如下所示。
这种架构看起来是否适合目的?
注意事项:
- 有很多电脑
- PC 有一个 WCF 客户端,因为它需要将数据上传到 定期数据库。
- PC 有服务器,因为终端服务器上的最终用户需要 能够向电脑询问信息
- 终端服务器是用户的 GUI,因此他们可以远程连接 到特定的 PC 以询问 PC 以获取信息
- 我们在下面使用basicHttpBinding
我们还考虑了什么?
我们已经尝试过 WCF NetPeerTcpBinding(即 P2P),但它不支持 请求-回复操作。
我们已经尝试过 WCF Duplex,但根据上面“注意事项”部分中列出的要求,无论如何我们最终都会在两端都有客户端和服务器。
【问题讨论】:
-
我不同意您在“我们所考虑的内容”中的第二点。上周我使用 TCP 而不是 HTTP 测试了 WCF 双工,它完美地工作而无需打开
server->client通道。我实际上通过互联网、防火墙和 NAT 进行了测试并使其正常工作。 -
只是用几句话确认:您想从客户端->服务器应用程序发送数据以上传数据。您还希望服务器也定期要求客户端上传数据吗?
-
@user1438082:创建带双工的客户端并在服务上下文下运行它应该没问题。在启动时,它可以建立允许通过/接收的连接。您还可以放置故障保险(连接断开/没有互联网等),然后将客户端 UI 绑定到本地服务。这也使您免于创建各种查找表,因为一旦订阅,服务器就已经知道要与之通信的潜在客户。
-
我会使用双工通信msdn.microsoft.com/en-us/library/ms731184.aspx 而不是双方的客户端/服务器...您是否尝试使用注册回调/发布订阅模式而不是在系统代理上运行的服务器? msdn.microsoft.com/en-us/magazine/cc163537.aspx
-
整个设置是否在单独的网络上运行,终端服务器是唯一的入口点?应用服务器向代理PC询问什么样的信息?
标签: c# wcf architecture wcf-binding wcf-security