我使用下面的方法列出文件夾的內容:連接到同一臺服務器使用不同的用戶名
private void TestFtp()
{
try
{
// List all of the files from FTP
FtpWebRequest ftprequest = (FtpWebRequest)WebRequest.Create(new Uri("ftp://m3database/recover/"));
ftprequest.Credentials = new NetworkCredential("myusername1", "********");
ftprequest.Method = WebRequestMethods.Ftp.ListDirectory;
ftprequest.UsePassive = false;
ftprequest.Proxy = null;
using (var resp = ftprequest.GetResponse())
{
StreamReader reader = new StreamReader(resp.GetResponseStream());
MessageBox.Show(reader.ReadToEnd());
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
我通過FTP連接到一個Linux服務器。我正在使用myusername1
和myusername2
的憑證進行連接。
我能列出使用此功能時,如果我使用myusername1
證書目錄內容,但是如果我用myusername2
它與下面的錯誤出現:
The remote server returned an error: (503) Bad sequence of commands.
的事情,我曾嘗試:
- 我試過設置
ftprequest.KeepAlive = false
。 - 我已經嘗試使用UsePassive,代理等所有排列
- 我能夠連接到兩個用戶名使用FileZilla與安全FTP啓用,他們都工作。沒有啓用FTP,也不會連接。
這是奇怪的是,我的代碼將連接使用myusername1
未啓用SSL在我的代碼。
總結:
myusername1
和myusername2
不會在未啓用安全的FTP上的FileZilla連接。myusername1
在我的C#方法內工作,沒有啓用ftprequest.EnableSsl
。myusername2
在我的C#方法中不起作用,無論是否啓用ftprequest.EnableSsl
。- 異常正在觸發我的
using()
聲明行。
別的東西,我剛剛注意到,當我將鼠標懸停在我的ftprequest
,它顯示了一個NotSupportedException異常,但是這似乎無論哪個設定我使用時使用
如果我將鼠標懸停在我最初ftprequest
證書myusername2
,這說明我的using()
之前拋出的異常:
FtpWebRequest.ContentType記錄爲總是拋出NotSupportedException異常,所以可能沒有太大意義。 我只能想到使用WireShark來查看電線上發生了什麼。 – 2013-03-08 09:55:53
主要問題是..成功完成文件傳輸嗎? – MethodMan 2013-03-08 09:57:18
儘管它是同一臺服務器,但我可以使用myusername1來列出目錄內容,但不能使用myusername2。 – Luke 2013-03-08 09:58:02