C# FTP,GetResponse(),遠(yuǎn)程服務(wù)器返回錯(cuò)誤
更新時(shí)間:2009年06月19日 23:29:53 作者:
C# FTP,GetResponse(),遠(yuǎn)程服務(wù)器返回錯(cuò)誤:(550) 文件不可用(例如,未找到文件,無(wú)法訪(fǎng)問(wèn)文件)
FtpWebRequest類(lèi)實(shí)現(xiàn)ftp功能的一般過(guò)程
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)證(用戶(hù)名,密碼)
5、執(zhí)行請(qǐng)求
6、接收相應(yīng)流(如果需要的話(huà))
7、如果沒(méi)有打開(kāi)的流,則關(guān)閉ftp請(qǐng)求
其中一些重要的屬性如下:
·Credentials - 指定登錄ftp服務(wù)器的用戶(hù)名和密碼。
·KeepAlive - 指定連接是應(yīng)該關(guān)閉還是在請(qǐng)求完成之后關(guān)閉,默認(rèn)為true
·UseBinary - 指定文件傳輸?shù)念?lèi)型。有兩種文件傳輸模式,一種是Binary,另一種是ASCII。兩種方法在傳輸時(shí),字節(jié)的第8位是不同的。ASCII使用第8位作為錯(cuò)誤控制,而B(niǎo)inary的8位都是有意義的。所以當(dāng)你使用ASCII傳輸時(shí)要小心一些。簡(jiǎn)單的說(shuō),如果能用記事本讀和寫(xiě)的文件用ASCII傳輸就是安全的,而其他的則必須使用Binary模式。當(dāng)然使用Binary模式發(fā)送ASCII文件也是非常好的。
·UsePassive - 指定使用主動(dòng)模式還是被動(dòng)模式。早先所有客戶(hù)端都使用主動(dòng)模式,而且工作的很好,而現(xiàn)在因?yàn)榭蛻?hù)端防火墻的存在,將會(huì)關(guān)閉一些端口,這樣主動(dòng)模式將會(huì)失敗。在這種情況下就要使用被動(dòng)模式,但是一些端口也可能被服務(wù)器的防火墻封掉。不過(guò)因?yàn)閒tp服務(wù)器需要它的ftp服務(wù)連接到一定數(shù)量的客戶(hù)端,所以他們總是支持被動(dòng)模式的。這就是我們?yōu)槭裁匆褂帽粍?dòng)模式的原意,為了確保數(shù)據(jù)可以正確的傳輸,使用被動(dòng)模式要明顯優(yōu)于主動(dòng)模式。(譯者注:主動(dòng)(PORT)模式建立數(shù)據(jù)傳輸通道是由服務(wù)器端發(fā)起的,服務(wù)器使用20端口連接客戶(hù)端的某一個(gè)大于1024的端口;在被動(dòng)(PASV)模式中,數(shù)據(jù)傳輸?shù)耐ǖ赖慕⑹怯蒄TP客戶(hù)端發(fā)起的,他使用一個(gè)大于1024的端口連接服務(wù)器的1024以上的某一個(gè)端口)
·ContentLength - 設(shè)置這個(gè)屬性對(duì)于ftp服務(wù)器是有用的,但是客戶(hù)端不使用它,因?yàn)镕tpWebRequest忽略這個(gè)屬性,所以在這種情況下,該屬性是無(wú)效的。但是如果我們?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) 文件不可用(例如,未找到文件,無(wú)法訪(fǎng)問(wèn)文件)"時(shí),可能是如下原因:
1.URL路徑不對(duì),看看有沒(méi)有多加空格,或者大小寫(xiě)問(wèn)題
2.權(quán)限是否足
3.需要反復(fù)連接的時(shí)候,如GetFileList,需要遞歸獲得所有文件,keepAlive則設(shè)成false,一個(gè)查詢(xún)請(qǐng)求完了后就關(guān)閉.
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)證(用戶(hù)名,密碼)
5、執(zhí)行請(qǐng)求
6、接收相應(yīng)流(如果需要的話(huà))
7、如果沒(méi)有打開(kāi)的流,則關(guān)閉ftp請(qǐng)求
其中一些重要的屬性如下:
·Credentials - 指定登錄ftp服務(wù)器的用戶(hù)名和密碼。
·KeepAlive - 指定連接是應(yīng)該關(guān)閉還是在請(qǐng)求完成之后關(guān)閉,默認(rèn)為true
·UseBinary - 指定文件傳輸?shù)念?lèi)型。有兩種文件傳輸模式,一種是Binary,另一種是ASCII。兩種方法在傳輸時(shí),字節(jié)的第8位是不同的。ASCII使用第8位作為錯(cuò)誤控制,而B(niǎo)inary的8位都是有意義的。所以當(dāng)你使用ASCII傳輸時(shí)要小心一些。簡(jiǎn)單的說(shuō),如果能用記事本讀和寫(xiě)的文件用ASCII傳輸就是安全的,而其他的則必須使用Binary模式。當(dāng)然使用Binary模式發(fā)送ASCII文件也是非常好的。
·UsePassive - 指定使用主動(dòng)模式還是被動(dòng)模式。早先所有客戶(hù)端都使用主動(dòng)模式,而且工作的很好,而現(xiàn)在因?yàn)榭蛻?hù)端防火墻的存在,將會(huì)關(guān)閉一些端口,這樣主動(dòng)模式將會(huì)失敗。在這種情況下就要使用被動(dòng)模式,但是一些端口也可能被服務(wù)器的防火墻封掉。不過(guò)因?yàn)閒tp服務(wù)器需要它的ftp服務(wù)連接到一定數(shù)量的客戶(hù)端,所以他們總是支持被動(dòng)模式的。這就是我們?yōu)槭裁匆褂帽粍?dòng)模式的原意,為了確保數(shù)據(jù)可以正確的傳輸,使用被動(dòng)模式要明顯優(yōu)于主動(dòng)模式。(譯者注:主動(dòng)(PORT)模式建立數(shù)據(jù)傳輸通道是由服務(wù)器端發(fā)起的,服務(wù)器使用20端口連接客戶(hù)端的某一個(gè)大于1024的端口;在被動(dòng)(PASV)模式中,數(shù)據(jù)傳輸?shù)耐ǖ赖慕⑹怯蒄TP客戶(hù)端發(fā)起的,他使用一個(gè)大于1024的端口連接服務(wù)器的1024以上的某一個(gè)端口)
·ContentLength - 設(shè)置這個(gè)屬性對(duì)于ftp服務(wù)器是有用的,但是客戶(hù)端不使用它,因?yàn)镕tpWebRequest忽略這個(gè)屬性,所以在這種情況下,該屬性是無(wú)效的。但是如果我們?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) 文件不可用(例如,未找到文件,無(wú)法訪(fǎng)問(wèn)文件)"時(shí),可能是如下原因:
1.URL路徑不對(duì),看看有沒(méi)有多加空格,或者大小寫(xiě)問(wèn)題
2.權(quán)限是否足
3.需要反復(fù)連接的時(shí)候,如GetFileList,需要遞歸獲得所有文件,keepAlive則設(shè)成false,一個(gè)查詢(xún)請(qǐng)求完了后就關(guān)閉.
您可能感興趣的文章:
- C#如何控制IIS動(dòng)態(tài)添加刪除網(wǎng)站詳解
- C#部署數(shù)據(jù)庫(kù)及IIS站點(diǎn)
- IIS下調(diào)用證書(shū)出現(xiàn)異常的解決方法 (C#)
- C# WebService發(fā)布以及IIS發(fā)布
- C#實(shí)現(xiàn)獲取IIS站點(diǎn)及虛擬目錄信息的方法
- C#開(kāi)發(fā)windows服務(wù)實(shí)現(xiàn)自動(dòng)從FTP服務(wù)器下載文件
- FtpHelper實(shí)現(xiàn)ftp服務(wù)器文件讀寫(xiě)操作(C#)
- c# 在windows中操作IIS設(shè)置FTP服務(wù)器的示例
相關(guān)文章
Asp.net core利用dynamic簡(jiǎn)化數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)
這篇文章介紹了Asp.net core利用dynamic簡(jiǎn)化數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07WPF實(shí)現(xiàn)雷達(dá)掃描圖的繪制詳解
這篇文章主要介紹了如何利用WPF實(shí)現(xiàn)雷達(dá)掃描圖的繪制,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定幫助,需要的可以參考一下2022-05-05Entity?Framework使用DBContext實(shí)現(xiàn)增刪改查
這篇文章介紹了Entity?Framework使用DBContext實(shí)現(xiàn)增刪改查的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10ASP.NET MVC5驗(yàn)證系列之客戶(hù)端驗(yàn)證
這篇文章主要為大家詳細(xì)介紹了ASP.NET MVC5驗(yàn)證系列之客戶(hù)端驗(yàn)證,感興趣的小伙伴們可以參考一下2016-07-07ASP.NET Global.asax應(yīng)用程序文件簡(jiǎn)介
Global.asax 文件,有時(shí)候叫做 ASP.NET 應(yīng)用程序文件,提供了一種在一個(gè)中心位置響應(yīng)應(yīng)用程序級(jí)或模塊級(jí)事件的方法。2009-03-03IdnentiyServer使用客戶(hù)端憑據(jù)訪(fǎng)問(wèn)API的實(shí)例代碼
這篇文章主要介紹了IdnentiyServer-使用客戶(hù)端憑據(jù)訪(fǎng)問(wèn)API的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2018-10-10ASP.NET網(wǎng)站第一次訪(fǎng)問(wèn)慢的解決方法
這篇文章主要為大家詳細(xì)介紹了IIS8上ASP.NET第一次訪(fǎng)問(wèn)慢的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04