Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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
通过Internet传输数据的最佳方式(适用于.NET开发人员)_.net_Wcf_Data Transfer - Fatal编程技术网

通过Internet传输数据的最佳方式(适用于.NET开发人员)

通过Internet传输数据的最佳方式(适用于.NET开发人员),.net,wcf,data-transfer,.net,Wcf,Data Transfer,我需要从服务器读取一些数据,通过internet(无VPN)传输,然后将其写入另一台服务器的磁盘。我本可以想到很多选择,但最终我实现了: 发件人为windows服务,每X分钟发送一次新数据 接收器作为WCF自托管服务,具有WSHttpBinding 以字符串形式传输的数据,该字符串是序列化为XML的对象 但在我这么做之后,我意识到有很多方法可以做到这一点: 其他协议,如FTP 中列出的其他绑定 其他参数类型,例如原始对象类型 我想知道这些选项中是否有任何一个会导致更快、更可靠或更安全的传输。你有

我需要从服务器读取一些数据,通过internet(无VPN)传输,然后将其写入另一台服务器的磁盘。我本可以想到很多选择,但最终我实现了:

  • 发件人为windows服务,每X分钟发送一次新数据
  • 接收器作为WCF自托管服务,具有WSHttpBinding
  • 以字符串形式传输的数据,该字符串是序列化为XML的对象
  • 但在我这么做之后,我意识到有很多方法可以做到这一点:

  • 其他协议,如FTP
  • 中列出的其他绑定
  • 其他参数类型,例如原始对象类型
  • 我想知道这些选项中是否有任何一个会导致更快、更可靠或更安全的传输。你有什么建议吗?

    SFTP(SSH文件传输协议)如果可能的话,我会投我一票

    几乎通过SSH连接传输FTP

    …您还可以尝试创建符合基于消息的安全性的WS-Security策略的web服务(根据您使用的模型,您的消息使用从用户名/密码对到X.509证书的任何内容进行加密)


    当一个现成的包/协议可以工作并且完全符合您的目的时,构建定制的东西似乎需要做很多工作。

    在安全方面,当您通过网络传输数据时,您可以利用它提供一层加密。

    发送方是非常开放的——几乎任何选择都可以

    对于一个接收者,考虑的一个选项是HutpHundRead——ASP.NET项目中的一个ASHX文件。您可以使用您想要向接收方提供选项/信息的任何自定义http头,然后数据就是http请求的有效负载。您不需要通过文本编码来增加数据的大小,HTTPS内置了安全性。这非常简单

    唯一的缺点是,如果您想实现某种“断开的连接,从我中断的功能开始”,这仍然是可能的,但有点困难——使用专用的定制服务可能会更容易。简单到可以为它编写套接字层

    它非常紧凑、多语言、快速,最重要的是,添加数据字段非常简单,而且不会破坏兼容性


    查看作者,他是堆栈溢出的常规贡献者

    如果您使用Windows服务器,您还可以使用并获得消息传递保证、事务、可靠性和一系列其他功能。它公开了HTTP端点,并且非常容易从

    访问和使用,因为您只想每分钟传输1MB,不需要安全性,而且既然您说双方都在运行Windows,我就简单地使用WCF和netTcpBinding。这将通过TCP/IP以二进制形式发送数据


    没有SOAP,没有XML,没有HTTP开销。

    请通过提供更多数据细节来澄清您的问题:有多少数据,多久一次,哪一方发起传输,传输需要多安全,等等@John,我想每分钟传输大约1MB,不需要安全性。