FtpWebRequest возвращает «Удаленный сервер возвратил ошибку: (530) Не выполнен вход»C#

Место общения программистов C#
Ответить
Anonymous
 FtpWebRequest возвращает «Удаленный сервер возвратил ошибку: (530) Не выполнен вход»

Сообщение Anonymous »

Я получаю эту ошибку: «Удаленный сервер возвратил ошибку: (530) Не выполнен вход». при загрузке файла с помощью FtpWebRequest.

  • Ошибка возникает только тогда, когда я переношу файлы по пути с подпапками, в противном случае все работает нормально.
  • При загрузке больших файлов размером от 5 до 10 МБ время ожидания истекает.

    Код: Выделить всё

    void FtpTransfer(string siteName, string portNumber, string ftpUser, string ftpPassword, string destPath)
    {
    FtpWebRequest request;
    DateTime now = DateTime.Now;
    string now_string =
    (now.Year).ToString()
    + "_" +
    (now.Month).ToString("0#")
    + "_" +
    (now.Day).ToString("0#");
    
    foreach (object item in listBox1.Items)
    {
    string srcFile = item.ToString();
    lblSource.Text = srcFile;
    Uri uri = new Uri(srcFile);
    string destFile = srcFile.Replace(lblPath.Text, "").Replace("\\\\", "\\").Replace("\\", "/").Replace("www/","");
    
    Configuration oConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    int timeout = int.Parse(oConfig.AppSettings.Settings["TimeOut"].Value);
    
    if (siteName == "mysite1.co.in" || siteName == "sd1.mysite2.net")
    destFile = "ftp://" + siteName + ":" + portNumber + "/" + siteName + "/_test" + destFile; //error here
    else
    destFile = "ftp://" + siteName + ":" + portNumber + "/" + siteName + destFile; //no error
    lblDestn.Text = destFile;
    
    request = (FtpWebRequest)WebRequest.Create(destFile);
    request.Credentials = new NetworkCredential(ftpUser, ftpPassword);
    request.Timeout = 6000;
    request.Method = WebRequestMethods.Ftp.UploadFile;
    request.UsePassive = true;
    request.UseBinary = true;
    request.KeepAlive = true;
    
    // Copy the contents of the file to the request stream.
    StreamReader sourceStream = new StreamReader(@srcFile);
    byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
    sourceStream.Close();
    request.ContentLength = fileContents.Length;
    
    Stream requestStream = request.GetRequestStream();
    requestStream.Write(fileContents, 0, fileContents.Length);
    requestStream.Close();
    
    FtpWebResponse response = (FtpWebResponse)request.GetResponse();
    
    string path = System.IO.Path.GetDirectoryName(Environment.GetCommandLineArgs()[0]);
    System.IO.StreamWriter w = System.IO.File.AppendText(path + "\\log_" + now_string + ".txt");
    w.WriteLine(DateTime.Now.ToString("yyy-MM-dd HH:mm:ss")
    + " "
    + srcFile
    + " "
    + destFile
    + " "
    + response.StatusDescription);
    
    w.Close();
    
    response.Close();
    }
    


Подробнее здесь: https://stackoverflow.com/questions/142 ... -logged-in
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»