将文件上载到远程服务器

时间:2014-09-18 16:25:10

标签: c# wpf

我是一名WPF新手,对C#线程编程几乎没有经验。我被分配了一个带有多线程的C#WPF应用程序。该应用程序的要求是将本地大文件上传到 名为" ABC"的目标文件夹直接位于运行于其下的远程服务器上的根磁盘驱动程序(例如C:\ ABC)下 Windows平台。我不知道要去的方向。请指教。谢谢。

以下是有关要求的详细信息:

  1. 因为每个上传的文件都很大,所以需要一个单独的线程来运行上传文件功能。 我计划使用async / await和Task对象进行线程编程。有什么想法吗?

  2. 在WPF中我不知道哪个WPF控件用于上传功能。请帮忙。

  3. 对于目标文件夹" ABC",我是否需要明确设置其访问权限?

  4. 我应该使用async / await和Task,或BackgroundWorker类吗?

  5. 更新

    WPF应用程序不是WCF应用程序。抱歉我的错字。

1 个答案:

答案 0 :(得分:1)

要使用WCF服务通过HTTP传输大型文件,您可以使用以下类型的绑定:

  • wsHttpBinding
  • basicHttpBinding

wsHttpBinding中,我们可以将TransferMode属性设置为Buffered,但是对于大文件使用此方法存在缺点,因为它需要将整个文件放在内存中在上载/下载之前,Web客户端和WCF服务主机上都需要一个大缓冲区。但是,这种方法对于安全地传输小文件非常有用。

basicHTTPBinding中,我们可以将TransferMode属性用作Streamed,以便可以以块的形式传输文件。

有关更多信息,请访问以下文章: WCF Streaming: Upload/Download Files Over HTTP

以及通过TCP/IP传输文件,请阅读以下内容:

WCF TCP-based File Server

Sending Files using TCP

Large Message Transfer with WCF-Adapters Part 1