我使用Webclient.UploadFileAsync
函数调用rest webservice将文件上传到服务器。上传到服务器也可以从Web应用程序完成。
服务器端处理以毫秒为单位。因此,大部分上传时间都花在了传输上。我可以在2分钟内从Web应用程序上传一个6.28 MB的文件,但如果使用Webclient.UploadFileAsync
从我的winform应用程序完成同样的上传需要3分钟。
网络浏览器上传与差异; webservice upload是前者直接将文件保存到服务器,在webservice的情况下,首先调用webservice,然后将文件保存到服务器。
那么,速度如此巨大差异的原因是什么?如何减少这种差异呢?
更新:我按照建议尝试使用fiddler,发现了一件有趣的事情。当我上传文件时,当小提琴手正在运行时,我的上传速度有了很大的提升。关闭了网络应用程序的速度。当我当小提琴手没有运行时我试着上传,我上传速度非常慢。所以,webclient类似乎有一个bug。我怎么解决这个问题?
答案 0 :(得分:0)
由于我的声誉,我无法添加评论,所以很抱歉提前满足您的期望,但似乎因为您必须通过中间件可以说,总体加载时间会增加,如果不是这很重要,你有正确的工具,有很多FTP客户端和库可以做到这一点,可能比你的Web服务器的速度更快。虽然如果你需要通过一个Web服务器,除了可能使用可能运行得更快的外部webclient之外,我不会有太多的答案。
因此,为了回答您的问题,使用安全的FTP库很可能会更快,速度差异主要是由于您在访问实际服务器之前必须经过的中间件。