1. 程式人生 > >C# 中WinForm 應用程式實現遠端檔案管理(上傳、下載)的種種問題——遠端伺服器返回錯誤

C# 中WinForm 應用程式實現遠端檔案管理(上傳、下載)的種種問題——遠端伺服器返回錯誤

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)

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

相關推薦

C# WinForm 應用程式實現遠端檔案管理下載種種問題——遠端伺服器返回錯誤

C# 中WinForm 應用程式實現遠端檔案管理(上傳、下載)的種種問題    WinForm可以通過C#語言提供的WebClient類的UploadFile和DownLoadFile函式實現檔案的上傳和下載功能,但是這也讓我嘗試到了使用這個函式時的辛酸,搞了整整一天才

springboot 整合 gridfs webUploader實現檔案分塊斷點續

主要的pom.xml: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId>

Hadoop學習筆記一通過Java API 操作HDFS,檔案下載

package demo.hdfs; import java.util.Arrays; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.BlockLocation; impor

libcurl庫的使用支援httphttpsftp下載遠端目錄列表獲取

這裡是libcurl庫的一個簡單封裝,支援跨平臺。宣告:    本文章可以轉載,但必須註明源部落格地址。共享的demo和curltools類不允許個人上傳網路賺取積分和現金,如有發現必定追究責任,請慎重。直接下載我上傳的資源把curl資料夾解壓到工程程式碼目錄下匯入curlt

C#winform應用程式介面顯示在分螢幕

最近碰到一個開發專案,該專案需要兩塊顯示器(如下圖所示),主螢幕用於顯示網頁,分螢幕用於顯示客戶端介面。該專案用到的客戶端是用C# winform編寫的。拋開客戶端處理的業務邏輯不談,主要談談在winform中如何讓介面出現在第二塊螢幕的中間。 Screen類 C#提供的Screen類可

c# 獲取應用程式的路徑

       示例:新建了一個windows窗體應用程式WindowsFormsApplication4,儲存在F:\Visual Studio 2008\Projects,啟動程式在F:\VisualStudio2008\Projects\WindowsFormsAppl

C#實現FTP檔案下載功能新建目錄以及檔案的刪除

轉載至:https://www.cnblogs.com/zhenzaizai/p/7434669.html using  System; using  System.Collections.Generic;

egg-ueditor,基於egg的UEditor百度編輯器後端實現,支援圖片/檔案列表及圖片遠端抓取

egg-ueditor 基於egg的UEditor百度編輯器後端實現,支援圖片/檔案上傳、列表及圖片遠端抓取 原始碼:https://github.com/inmyjs/egg-ueditor 安裝 npm install egg-ueditor --save 使用方

java FtpClient 實現 FTP 檔案下載

package ftp; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileWrit

java使用Jsch實現遠端操作linux伺服器進行檔案下載,刪除和顯示目錄資訊

1 package com.fline.aic.utils; 2 3 import java.io.BufferedReader; 4 import java.io.File; 5 import java.io.FileInputStream; 6 import jav

Java實現遠端HDFS的檔案操作新建下載刪除

import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;public class

FastDFS:Java客戶都實現檔案下載修改刪除

客戶端版本:fastdfs_client_v1.24.jar   配置檔案 connect_timeout = 200 network_timeout = 3000 charset = UTF-8 http.tracker_http_port = 8080 http.anti_steal

springcloudfeign檔案下載

檔案上傳、下載也是實際專案中會遇到的場景,本篇我們介紹下springcloud中如何使用feign進行檔案上傳與下載 。  還是使用feign 進行http的呼叫。 一、Feign檔案上傳 服務提供方java程式碼: /** * 檔案上傳 * @param fil

Java 實現ftp 檔案下載和刪除

本文利用apache ftp工具實現檔案的上傳下載和刪除。具體如下: 1、下載相應的jar包      commons-net-1.4.1.jar 2、實現程式碼如下: public class FtpUtils { //ftp伺服器地址

微信小程式實現快遞查詢功能介面JSON資料請求和解析radio-group的使用...

執行效果: 請求資料之前需要首先在小程式平臺設定伺服器域名 第一個介面的實現:介面傳值、radio-group的使用 first.wxml <!--first.wxml--&g

git:下載新增刪除檔案遠端倉庫

一、下載倉庫檔案: 1、設定你要從哪個倉庫上傳/下載檔案 git remote add origin [email protected]:ssh159/ssh159.github.io git remote -v :檢視當前的倉庫地址! 2、把遠端倉庫的檔案下載到

Java實現帶表單引數的檔案下載檔案打包下載

準備工作 知識準備 SpringBoot Maven Spring Data JPA 工具準備 IDE:IDEA 說明 在此專案中, 我將檔案上傳的一些引數(例如上傳路徑、下載路徑、檔名等)儲存在資料庫當中,這樣更加靈活。當專案部署後,只需要更改資料庫中的資

YIIUeditor富文字編輯器檔案和圖片的配置

將Ueditor整合到YII框架中後,參照editor_config.js中的toolbars中的內容,更改options中標籤可以給編輯器新增想要的功能: 因此要想新增檔案和圖片上傳功能,應該加入以下兩個標籤: 文字編輯器中便出現了對應的兩個選項: 但是點選上傳圖片按

Mac連線遠端伺服器Linux以及檔案下載命令

在windows上,用xshell+xftp就可以很方便的操作遠端linux伺服器了。 而這2個軟體是沒有mac版的,所以在macOS下,是怎樣實現對遠端linux伺服器的操作的呢?   使用ssh連線遠端主機 ssh [email protected] 使用