C# FTP,GetResponse(),遠(yuǎn)程服務(wù)器返回錯(cuò)誤
1、創(chuàng)建一個(gè)FtpWebRequest對(duì)象,指向ftp服務(wù)器的uri
2、設(shè)置ftp的執(zhí)行方法(上傳,下載等)
3、給FtpWebRequest對(duì)象設(shè)置屬性(是否支持ssl,是否使用二進(jìn)制傳輸?shù)龋?
4、設(shè)置登錄驗(yàn)證(用戶名,密碼)
5、執(zhí)行請(qǐng)求
6、接收相應(yīng)流(如果需要的話)
7、如果沒有打開的流,則關(guān)閉ftp請(qǐng)求
其中一些重要的屬性如下:
·Credentials - 指定登錄ftp服務(wù)器的用戶名和密碼。
·KeepAlive - 指定連接是應(yīng)該關(guān)閉還是在請(qǐng)求完成之后關(guān)閉,默認(rèn)為true
·UseBinary - 指定文件傳輸?shù)念愋?。有兩種文件傳輸模式,一種是Binary,另一種是ASCII。兩種方法在傳輸時(shí),字節(jié)的第8位是不同的。ASCII使用第8位作為錯(cuò)誤控制,而Binary的8位都是有意義的。所以當(dāng)你使用ASCII傳輸時(shí)要小心一些。簡(jiǎn)單的說,如果能用記事本讀和寫的文件用ASCII傳輸就是安全的,而其他的則必須使用Binary模式。當(dāng)然使用Binary模式發(fā)送ASCII文件也是非常好的。
·UsePassive - 指定使用主動(dòng)模式還是被動(dòng)模式。早先所有客戶端都使用主動(dòng)模式,而且工作的很好,而現(xiàn)在因?yàn)榭蛻舳朔阑饓Φ拇嬖?,將?huì)關(guān)閉一些端口,這樣主動(dòng)模式將會(huì)失敗。在這種情況下就要使用被動(dòng)模式,但是一些端口也可能被服務(wù)器的防火墻封掉。不過因?yàn)閒tp服務(wù)器需要它的ftp服務(wù)連接到一定數(shù)量的客戶端,所以他們總是支持被動(dòng)模式的。這就是我們?yōu)槭裁匆褂帽粍?dòng)模式的原意,為了確保數(shù)據(jù)可以正確的傳輸,使用被動(dòng)模式要明顯優(yōu)于主動(dòng)模式。(譯者注:主動(dòng)(PORT)模式建立數(shù)據(jù)傳輸通道是由服務(wù)器端發(fā)起的,服務(wù)器使用20端口連接客戶端的某一個(gè)大于1024的端口;在被動(dòng)(PASV)模式中,數(shù)據(jù)傳輸?shù)耐ǖ赖慕⑹怯蒄TP客戶端發(fā)起的,他使用一個(gè)大于1024的端口連接服務(wù)器的1024以上的某一個(gè)端口)
·ContentLength - 設(shè)置這個(gè)屬性對(duì)于ftp服務(wù)器是有用的,但是客戶端不使用它,因?yàn)镕tpWebRequest忽略這個(gè)屬性,所以在這種情況下,該屬性是無效的。但是如果我們?cè)O(shè)置了這個(gè)屬性,ftp服務(wù)器將會(huì)提前預(yù)知文件的大?。ㄔ趗pload時(shí)會(huì)有這種情況)
·Method - 指定當(dāng)前請(qǐng)求是什么命令(upload,download,filelist等)。這個(gè)值定義在結(jié)構(gòu)體WebRequestMethods.Ftp中。
當(dāng)你遇到:"遠(yuǎn)程服務(wù)器返回錯(cuò)誤:(550) 文件不可用(例如,未找到文件,無法訪問文件)"時(shí),可能是如下原因:
1.URL路徑不對(duì),看看有沒有多加空格,或者大小寫問題
2.權(quán)限是否足
3.需要反復(fù)連接的時(shí)候,如GetFileList,需要遞歸獲得所有文件,keepAlive則設(shè)成false,一個(gè)查詢請(qǐng)求完了后就關(guān)閉.
- C#如何控制IIS動(dòng)態(tài)添加刪除網(wǎng)站詳解
- C#部署數(shù)據(jù)庫及IIS站點(diǎn)
- IIS下調(diào)用證書出現(xiàn)異常的解決方法 (C#)
- C# WebService發(fā)布以及IIS發(fā)布
- C#實(shí)現(xiàn)獲取IIS站點(diǎn)及虛擬目錄信息的方法
- C#開發(fā)windows服務(wù)實(shí)現(xiàn)自動(dòng)從FTP服務(wù)器下載文件
- FtpHelper實(shí)現(xiàn)ftp服務(wù)器文件讀寫操作(C#)
- c# 在windows中操作IIS設(shè)置FTP服務(wù)器的示例
相關(guān)文章
IIS中ASP.NET連接SQL Server出錯(cuò)的解決方法
在IIS中運(yùn)行的ASP.NET應(yīng)用程序其所屬用戶名為ASPNET的特定用戶,其默認(rèn)權(quán)限是無法訪問SQL Server的,更不可能訪問ASP.NET應(yīng)用程序的數(shù)據(jù)庫了,因此要在IIS中訪問SQL Server就需要給ASPNET帳戶賦予相應(yīng)的權(quán)限.2010-03-03
ASP.NET中使用AspnetAccessProvider
ASP.NET中使用AspnetAccessProvider...2007-09-09
Consul的搭建和.Net5的注冊(cè)和獲取方法(Win10簡(jiǎn)單版)
Consul?是一個(gè)用來實(shí)現(xiàn)分布式系統(tǒng)服務(wù)發(fā)現(xiàn)與配置的開源工具。接下來通過本文給大家介紹win10下Consul的搭建和.Net5的注冊(cè)和獲取方法,感興趣的朋友一起看看吧2022-01-01
.Net獲取URL中文參數(shù)值的亂碼問題解決方法總結(jié)
這篇文章主要介紹了.Net獲取URL中文參數(shù)值的亂碼問題解決方法,總結(jié)分析了針對(duì)URL參數(shù)傳遞中出現(xiàn)的亂碼問題與相應(yīng)的解決方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08
在.NET程序崩潰時(shí)自動(dòng)創(chuàng)建Dump的思路詳解
本文主要是介紹了如何在dotNet程序崩潰時(shí)自動(dòng)創(chuàng)建Dump,Windows上的方法對(duì)于.NET Freamwork和.NET Core版本都適用,.NET Core全平臺(tái)版本的話需要注意環(huán)境變量支持的.NET版本,對(duì).net程序崩潰自動(dòng)創(chuàng)建Dump相關(guān)知識(shí)感興趣的朋友一起看看吧2022-11-11
.net實(shí)現(xiàn)oracle數(shù)據(jù)庫中獲取新插入數(shù)據(jù)的id的方法
在oracle數(shù)據(jù)庫中實(shí)現(xiàn)插入數(shù)據(jù)的自動(dòng)增長不是很容易,想在.net中實(shí)現(xiàn)獲取新插入數(shù)據(jù)的id,感興趣的朋友看下詳細(xì)的解決方法,希望對(duì)你有所幫助2013-04-04
ASP.NET Core開發(fā)教程之Logging利用NLog寫日志文件
一直很喜歡 NLog 的簡(jiǎn)潔和擴(kuò)展性,所以下面這篇文章主要給大家介紹了關(guān)于ASP.NET Core開發(fā)教程之Logging利用NLog寫日志文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-07-07
.Net彈性和瞬態(tài)故障處理庫Polly實(shí)現(xiàn)彈性策略
這篇文章介紹了.Net彈性和瞬態(tài)故障處理庫Polly實(shí)現(xiàn)彈性策略的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
ASP.NET(C#) String, StringBuilder 與 StringWriter性能比較
ASP.NET(C#) String, StringBuilder 與 StringWriter性能比較...2007-08-08

