2016-09-09 113 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庫將最有可能更快,速度差的主要原因是你打你的實際服務器之前要經過中間件。