首页 > 解决方案 > 使用 wcf 服务改进文件复制过程

问题描述

我正在尝试用 C# 编写一个应用程序,它可以通过两种方式复制数据。

  1. 使用 System.IO 命名空间的 .Net CopyFile 方法将文件从源计算机复制到目标计算机。通过这种方式,它使用 SMB 协议进行复制。

  2. 使用流阅读器从客户端文件中读取块并将其发送到目标计算机上托管的已连接 WCF 服务。WCF 服务将数据写入目标机器磁盘。我一次正在读取和发送 1 MB 数据。

在我的场景中,与 1 Gbps 网络上的 SMB(第一种方法)相比,使用 WCF 服务的第二种方法运行速度较慢。

有人建议使用 TCP 窗口缩放。请建议这是否有用,或者让我知道改进它的方法。

在大多数情况下,使用 netTcpbinding 实现 WCF 的工作速度比 SMB 快。但是当客户端在托管 WCF 服务的目标计算机上安装了多个 nic 时,它就卡住了。但在这种情况下,普通副本(第一种方法)工作得更快。

标签: c#wcftcpsmb

解决方案


推荐阅读