【问题标题】:How to increase speed of Webclient.UploadFileAsync function?如何提高 Webclient.UploadFileAsync 函数的速度?
【发布时间】:2017-01-17 14:32:02
【问题描述】:

我正在使用Webclient.UploadFileAsync 函数调用rest webservice 将文件上传到服务器。也可以从 Web 应用程序上传到服务器。

服务器端处理以毫秒为单位。因此,上传的大部分时间都花在了传输上。我可以在 2 分钟内从 Web 应用程序上传一个 6.28 MB 的文件,但如果使用 Webclient.UploadFileAsync 从我的 winform 应用程序完成相同的上传,则需要 3 分钟。

web浏览器上传和webservice上传的区别在于前者直接将文件保存到服务器,而webservice的情况下,首先调用webservice,然后将文件保存到服务器。

那么,速度差异如此之大的原因是什么?以及如何减少这种差异?

更新:我按照建议尝试使用 fiddler,发现了一个有趣的事情。当我上传文件时,在 fiddler 运行时,我的上传速度得到了巨大的提升。接近 web 应用程序的速度。而且,当我尝试在提琴手没有运行时上传,我的上传速度和以前一样慢。所以,webclient 类中似乎有一个错误。我该如何解决这个问题?

【问题讨论】:

  • 尝试一些网络跟踪工具,例如 Fiddler 和 WireShark,以确定网络级别发生了什么。

标签: c# web-services file-upload .net-4.5 webclient


【解决方案1】:

由于我的声誉,我无法添加 cmets,很抱歉让您提前抱有希望,但似乎由于您必须通过中间件可以说,因此总体加载时间会增加,如果不是这很重要,而且您有正确的工具来执行此操作,有许多 FTP 客户端和库可以执行此操作,并且可能比您的 Web 服务器的速度更快。虽然如果您需要通过网络服务器,除了可能使用可以可能运行稍快一些的外部网络客户端之外,我不会有太多答案。

所以为了回答你的问题,使用安全的 FTP 库很可能会更快,速度差异主要是由于在访问实际服务器之前必须通过中间件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 2014-05-05
    • 2022-07-13
    • 2016-12-13
    • 1970-01-01
    • 2015-12-20
    • 2018-08-10
    相关资源
    最近更新 更多