У меня есть небольшая winform с C#, в которой я генерирую текстовые файлы, а затем перемещаю их на ftp-сервер. Когда я пытаюсь переместить их на сервере он терпит неудачу приОшибка при загрузке файла на ftp-сервер
The remote server returned an error: (530) Not logged in.
Если бы я войти в FTP через CMD/FTP с тем же FTP-адрес, имя пользователя и пароль, все в порядке. Я также установил локальный ftp-сервер на своей машине и протестировал его, чтобы узнать, может ли мой код генерировать ошибку, но локально он работает как прелесть, у меня есть проблема только с производственным ftp-сервером. Ниже мой код для подключения и загрузки файлов на сервер FTP:
string[] FileName = Directory.GetFiles(outputpath);
foreach (string txtFile in FileName)
{
FileInfo toUpload = new FileInfo(txtFile);
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + tbFTPAddress.Text + @"//" + toUpload.Name);
request.Credentials = new NetworkCredential(tbFTPUserName.Text.Trim(), tbFTPPassword.Text.Trim());
request.Method = WebRequestMethods.Ftp.UploadFile;
Stream ftpStream = request.GetRequestStream();
FileStream file = File.OpenRead(txtFile);
int length = 1024;
byte[] buffer = new byte[length];
int bytesRead = 0;
try
{
do
{
bytesRead = file.Read(buffer, 0, length);
ftpStream.Write(buffer, 0, bytesRead);
}
while (bytesRead != 0);
file.Close();
ftpStream.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error encountered!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
if (file != null) file.Close();
if (ftpStream != null) ftpStream.Close();
}
}
ошибка приходит на: Stream ftpStream = request.GetRequestStream();
Любые идеи?
Спасибо!
Я должен добавить, что пароль содержит символ *. Это может быть проблема? – Sergiu
Вы пробовали это с помощью другого внешнего ftp-сервера? – Noctis