正在将文件上载到远程服务器

本文关键字:服务器 上载 文件 | 更新日期: 2023-09-27 18:23:36

我是一个WPF新手,对C#线程编程几乎没有经验。我被分配了一个带有多线程的C#WPF应用程序。该应用程序的要求是将本地大文件上传到名为"ABC"的目标文件夹,直接位于根磁盘驱动程序(例如C:''ABC)下Windows平台。我不知道该怎么走。请告知。非常感谢。

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

  1. 因为每个上传的文件都很大,所以需要一个单独的线程来运行上传文件功能。我计划将线程编程与async/await和Task对象结合使用。知道吗?

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

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

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

更新:

WPF应用程序而非WCF应用程序。抱歉我的打字错误。

正在将文件上载到远程服务器

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

  • wsHttpBinding
  • basicHttpBinding

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

basicHTTPBinding中,我们可以使用TransferMode属性作为Streamed,这样文件就可以以块的形式传输。

有关更多信息,请参阅本文:WCF流:通过HTTP 上传/下载文件

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

基于WCF TCP的文件服务器

使用TCP 发送文件

使用WCF适配器的大型消息传输第1部分