2016-09-09 71 views
0

我正在使用Webclient.UploadFileAsync函数来调用休息Web服务来上传文件到服务器。上传到服务器也可以通过Web应用程序完成。如何提高Webclient.UploadFileAsync函数的速度?

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

网页浏览器上传差异&网页服务上传是指前者直接将文件保存到服务器,并且在web服务的情况下首先调用web服务,然后将文件保存到服务器。

那么,这么大的速度差异是什么原因呢?这种差异又如何减少?

更新:我尝试使用fiddler作为建议,并且发现了一件有趣的事情。当我上传一个文件,而提琴手运行时,我的上传速度得到了巨大的改善。接近于web应用程序的速度。并且,当我试着在小提琴没有运行时上传,我的上传速度非常慢,因此,webclient类似乎存在一个错误。我该如何解决这个问题?

+0

尝试使用一些网络跟踪工具,例如Fiddler和WireShark来确定网络级别正在发生的事情。 – leetibbett

回答

0

由于我的声望,我无法添加评论,所以很抱歉让您事先得到您的希望,但似乎因为您必须通过中间件可以这么说,总体加载时间会增加,如果它是不是那么重要,你有正确的工具可以这样做,有许多FTP客户端和库可以做到这一点,并且可能比你的Web服务器的速度更快。虽然如果你需要通过网络服务器,我可能没有太多的答案,除了可能使用外部web客户端,可能也许运行速度稍快。

所以要排序的回答你的问题,使用安全的FTP库将最有可能更快,速度差的主要原因是你打你的实际服务器之前要经过中间件。