Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 需要WCF架构帮助_C#_Wcf_Architecture_Wcf Binding_Wcf Security - Fatal编程技术网

C# 需要WCF架构帮助

C# 需要WCF架构帮助,c#,wcf,architecture,wcf-binding,wcf-security,C#,Wcf,Architecture,Wcf Binding,Wcf Security,我们计划实施新的软件应用程序,如下所示 这种体系结构看起来适合使用吗 需要注意的事项: 有很多个人电脑 pc有一个WCF客户端,因为它需要将数据上载到 定期更新数据库 PC有一台服务器,因为终端服务器上的最终用户需要 能够询问电脑的信息 终端服务器是用户可以远程连接的GUI 发送到特定PC以询问PC的信息 我们在下面使用basicHttpBinding 我们还考虑了什么? 我们已经尝试过WCF NetPeerTcpBinding(即P2P),但它不支持 请求-应答操作 我们已经尝试过WCF

我们计划实施新的软件应用程序,如下所示

这种体系结构看起来适合使用吗

需要注意的事项:

  • 有很多个人电脑
  • pc有一个WCF客户端,因为它需要将数据上载到 定期更新数据库
  • PC有一台服务器,因为终端服务器上的最终用户需要 能够询问电脑的信息
  • 终端服务器是用户可以远程连接的GUI 发送到特定PC以询问PC的信息
  • 我们在下面使用basicHttpBinding
我们还考虑了什么?

  • 我们已经尝试过WCF NetPeerTcpBinding(即P2P),但它不支持 请求-应答操作

  • 我们已经尝试过WCF Duplex,但是根据上面要注意的事项部分列出的要求,我们最终还是会在两端都有一个客户机和服务器


很抱歉,我基本上不同意您的架构

  • 除了请求-响应通信之外,WCF不适用于任何其他用途。 它的全双工功能将无法使服务器端向特定客户端发出通信,除非该客户端已向服务器发出连接。 这意味着,为了实现与所有客户机的著名在线全双工通信,所有客户机必须保持与服务器的开放端口

  • 为了实现在线全双工,在每台PC机上安装双客户端和服务器是向前迈出的一步,因为它将解决每台客户机保持端口打开的问题,但是它在安全性方面有缺点,因为这意味着特定PC机打开以接收多个连接请求。如果不小心,致命的重入可能会出现另一个问题。因此,基本上您将保存“端口”以交换体系结构 解决方案的可维护性和适用性


因此,如果您的目标是部署大约200-300台PC,那么您的体系结构将保持不变,但如果您的目标是部署数千台PC,那么它将不会保持不变。

我不同意您在“我们所考虑的”中的第二点上周,我使用TCP而不是HTTP测试了WCF duplex,它在不打开
server->client
通道的情况下工作得非常好。事实上,我通过互联网、防火墙和NAT测试并实现了这一点。只需用几句话确认一下:您想从客户端->服务器应用程序发送数据以上载数据。您还希望服务器定期要求客户端也上传数据?@user1438082:创建一个双工客户端并在服务上下文下运行应该可以。在启动时,它可以建立允许传递/接收的连接。您还可以放置故障保护(在连接断开/没有internet等情况下),然后将客户端UI连接到本地服务。这还可以避免您创建查找表,因为一旦订阅,服务器就已经知道要与prospect通信。我将使用双工通信,而不是在两侧使用客户端/服务器。。。您是否尝试使用已注册回调/发布-订阅模式而不是在系统代理上运行的服务器?整个设置是否在单独的网络上运行,终端服务器是唯一的入口?应用服务器询问代理PC的目的是什么信息?在intranet环境中大约有300台PC。因此,我认为您同意我们的体系结构?是的,对于内联网环境中的300台pc,它可以运行。对于需要扩展到5000台pc的系统,您有什么建议?我建议使用一个tcp/ip服务器,该服务器使用IOCP(输入输出完成端口)和应用程序级协议。不是http请求响应,意味着不是基于WCF的服务器。