【发布时间】: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