2009-10-13 31 views
7

tôi cố gắng liệt kê chi tiết tập tin sử dụng FtpWebRequest nhưng rất thường xuyên nó không thành công với một WebException và cho thấy lỗi 530 Người dùng không đăng nhập.Net FtpWebRequest thất bại đôi khi

Làm thế nào có thể như vậy, mà nó hoạt động một số thời gian sử dụng các thông tin tương tự?

Trích từ mã:

 reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpuri)); 
     reqFTP.UseBinary = true; 
     reqFTP.Credentials = new NetworkCredential(userName, password); 
     string[] downloadFiles = new string[0]; 
      reqFTP.Method = WebRequestMethods.Ftp.ListDirectoryDetails; 
      WebResponse response = reqFTP.GetResponse(); 
      StreamReader reader = new StreamReader(response.GetResponseStream()); 
      downloadFiles = reader.ReadToEnd().Replace("\r\n", "¤").Split('¤'); 
      reader.Close(); 
      response.Close(); 
+0

Tôi đã gặp sự cố chính xác này. Nó dường như xảy ra thường xuyên hơn khi tôi đã được kết nối với máy chủ trong một thời gian, sau đó tôi thay đổi thư mục và làm một danh sách. – Jonathan

+0

Vấn đề của bạn tương tự như lỗi được xây dựng trong Windows Explorer FTP (tức là: Internet Explorer được tích hợp vào Explorer.exe), sau khi điều hướng thư mục, nó sẽ "mất" thông tin đăng nhập của bạn và liên tục yêu cầu bạn đăng nhập. Tôi chưa bao giờ nghe nói về hành vi này khi sử dụng dotnet, mặc dù. –

Trả lời

1

Hãy thử thiết lập

reqFTP.KeepAlive = false; 

và có thể nếu ở trên không hoạt động

reqFTP.UsePassive = false; 

tôi thấy rằng thiết lập này để giả làm giảm sự xuất hiện của lỗi này (được tạo ra bởi máy chủ FTP) đáng kể.