C# 中WinForm 應用程式實現遠程檔案管理(上傳、下載)的種種問題

來源:互聯網
上載者:User

C# 中WinForm 應用程式實現遠程檔案管理(上傳、下載)的種種問題

   WinForm可以通過C#語言提供的WebClient類的UploadFile和DownLoadFile函數實現檔案的上傳和下載功能,但是這也讓我嘗試到了使用這個函數時的辛酸,搞了整整一天才成功。而且在使用的環境是win7 + iis7.0,iis7.0和iis6.0相比在,在配置操作上有很大的區別。

1 檔案下載,檔案下載功能很easy,一個函數,也沒有出現任何問題,估計最大的問題就是伺服器檔案路徑找不到,產生的404錯誤,未找到。

WebClient myClient = new WebClient();

String localfilePath = dialog1.FileName;

myClient. DownloadFile (“http://localhost:2368/upload/fileName”, localfilePath);

2 檔案上傳功能:

這個功能整整的折磨了我一天,知道晚上9點中才基本搞定。也把種種問題遇到了。

 

  WebClient client = new WebClient ();

 // Add a user agent header in case the  requested URI contains a query.

client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");

client.UploadFile(localfile,”PUT”,ServerPath);

2.1 遠程伺服器返回錯誤: (401)  添加身分識別驗證:

需要在網站開啟身分識別驗證的許可權(允許匿名訪問,windows 身分識別驗證),在iis7.0內容視圖上雙擊身分識別驗證、開啟匿名驗證和windows身分識別驗證。

2.2 遠程伺服器返回錯誤 (403) 已禁止

解決方案:iis虛擬目錄的寫入許可權和uploadfile檔案夾給iis_user使用者開寫入許可權。

進入網站的虛擬路徑目錄,虛擬目錄屬性給寫入許可權;

2.3 遠程伺服器返回錯誤: (404) 未找到

分析與解決方案:一般是由於UploadFile()函數中中“PUT”、“POST”關鍵字,要選擇使用“PUT”關鍵字。同時要添加iis的處理常式映射。

WebClient myClient = new WebClient();

myClient.UploadFile(Serverurl,"PUT",localfilePath);

//UploadFile函數中如果關鍵字POST,必須改用PUT。同時要配置IIS的功能視圖中的處理常式映射,配置過程如下:開始-運行—inetmgr命令,開啟ii7,左側選擇虛擬目錄,右側選擇功能視圖—處理常式映射-雙擊進入,選擇ExtensionlessUrlHandler-Integrated-4.0雙擊後,點擊要求節流-謂詞面板-,下列謂詞之一:GET,HEAD,POST,DEBUG,PUT,DELETE。預設沒有PUT,DELETE,添加上。

2.4“遠程伺服器返回錯誤: (405) 不允許的方法

解決方案:把網站發布到iis上,設定iis的寫入許可權和上傳檔案夾的寫入許可權。不知道為什麼在本地調試都是報這種錯誤,把網站發布到iis上,再通過iis訪問就可以通過了,邪乎~。

2.5“遠程伺服器返回錯誤: (500) 內部伺服器錯誤

分析與解決方案:可能是client資訊頭需要設定,

  WebClient client = new WebClient ();

 // Add a user agent header in case the requested URI contains a query.

  client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");

2.6遠程伺服器返回錯誤: (501) 未實現

webdav沒有啟動,ii6中webdav作為iis的輔助服務,預設不開啟,可以自己開啟。

或win7中WebClient服務沒有開啟(我的電腦-管理-服務中開啟此服務),同時在iis7.0 中配置webdav服務,添加授權規則:allow access to ( all content); Allow access to this content to (All users) ;permission (Read, Source,Write)

遇到的問題基本就這些,具體為什麼會出現這種錯誤,再次不介紹,可以去網上搜搜。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.