Tôi đang sử dụng các phương pháp sau đây để xem nội dung của một thư mục:Đang kết nối đến cùng một Server với tên người dùng khác nhau
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);
}
}
Tôi đang kết nối đến một máy chủ Linux đơn thông qua FTP. Tôi đang sử dụng thông tin đăng nhập cho myusername1
và myusername2
để kết nối.
tôi có thể liệt kê nội dung thư mục khi sử dụng chức năng này nếu tôi đang sử dụng myusername1
thông tin, tuy nhiên nếu tôi sử dụng myusername2
nó đi kèm với các lỗi sau:
The remote server returned an error: (503) Bad sequence of commands.
Những điều mà tôi đã cố gắng:
- Tôi đã thử đặt
ftprequest.KeepAlive = false
. - Tôi đã thử sử dụng tất cả các hoán vị của UsePassive, Proxy, v.v.
- Tôi có thể kết nối với cả hai tên người dùng bằng cách sử dụng FileZilla WITH FTP an toàn được bật và cả hai đều hoạt động. Nếu không có FTP được kích hoạt, sẽ không kết nối.
Thật lạ khi mã của tôi sẽ kết nối bằng cách sử dụng myusername1
mà không bật SSL trong mã của tôi.
Nói tóm lại:
myusername1
vàmyusername2
sẽ không kết nối trên FileZilla FTP mà không an toàn được kích hoạt.myusername1
hoạt động trong phương pháp C# của tôi mà không bậtftprequest.EnableSsl
.myusername2
sẽ không hoạt động trong phương pháp C# của tôi bất kể có bậtftprequest.EnableSsl
hay không.- Ngoại lệ được kích hoạt trên dòng tuyên bố
using()
của tôi.
Cái gì khác tôi chỉ nhận thấy, khi tôi di chuột qua ftprequest
của tôi, nó cho thấy một NotSupportedException, nhưng điều này dường như không phân biệt trong đó tập hợp các thông tin tôi sử dụng
Nếu tôi di chuột qua ban đầu ftprequest
của tôi khi sử dụng myusername2
, nó cho thấy một ngoại lệ ném trước using()
tôi:
FtpWebRequest.ContentType được ghi chép lại như mọi khi ném một NotSupportedException, do đó có lẽ không có nhiều ý nghĩa. Tôi chỉ có thể nghĩ sử dụng WireShark để xem điều gì đang xảy ra trên dây. –
câu hỏi chính là .. làm các tập tin chuyển giao thành công? – MethodMan
Tôi có thể liệt kê các nội dung thư mục bằng cách sử dụng 'myusername1', nhưng không phải' myusername2', mặc dù nó là cùng một máy chủ. – Luke