FtpWebRequest: 550 файл не найден ошибка - PullRequest
1 голос
/ 02 апреля 2012

Я пытаюсь прочитать текстовый файл с FTP-сервера, и я получаю «550 Файл не найден».ошибка, даже если я на 100% уверен, что файл есть.

Вот варианты для URI, которые я пробовал:

ftp://server/MySubFolder/MyFile.txt
ftp://server/%2fMySubFolder/MyFile.txt
ftp://server/MySubFolder/%2fMyFile.txt
ftp://server/%2fMySubFolder/%2fMyFile.txt
ftp://server/%2f/MySubFolder/MyFile.tx
ftp://server/MySubFolder/%2f/MyFile.txt
ftp://server/%2f/MySubFolder/%2f/MyFile.txt

Все они возвращают одну и ту же страницу результатов:

200 Type set to I.
200 PORT command successful.
550 The system cannot find the path specified.

Вот код, который я пробую:

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(file);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential(username, password);

FtpWebResponse response = (FtpWebResponse)request.GetResponse();

Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);

string content = reader.ReadToEnd();

reader.Close();
response.Close();

Я также пытался вызвать SetMethodRequiresCWD перед созданием моих FtpWebRequest объектов, но это тоже не помогло.

Мое приложение - служба Windows профиля клиента .NET 4.0.

Буду признателен за любую помощь.

Ответы [ 2 ]

2 голосов
/ 03 апреля 2012

Решил эту проблему следующим образом: Сервер, на котором работает служба, является виртуальной машиной Hyper-X.Каким-то образом виртуальная машина действует как прокси.Я добавил request.Proxy = null; к своим запросам, и теперь загрузка и выгрузка работает.

0 голосов
/ 27 июня 2017

Это решение не решило мою проблему. Если есть кто-то, у кого есть эта проблема, также можете попытаться подключиться к ftp-серверу, добавив имя пользователя в URL в виде пар;

FTP: //username@domain.com/uploads/fileName.jpg

...