FtpWebRequest:550找不到文件错误

时间:2012-04-02 16:00:26

标签: .net .net-4.0 windows-services ftpwebrequest

我正在尝试从ftp服务器读取txt文件,而我收到的“找不到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();

我还尝试在创建FtpWebRequest对象之前调用SetMethodRequiresCWD,但它也没有帮助。

我的应用程序是.NET 4.0 Client Profile Windows服务。

我很感激任何帮助。

2 个答案:

答案 0 :(得分:2)

解决了这个问题:服务运行的服务器是Hyper-X虚拟机。不知何故,VM就像一个代理。我在我的请求中添加了request.Proxy = null;,现在上传和下载都有效。

答案 1 :(得分:0)

这个问题并没有解决我的问题。如果有人遇到此问题,也可以尝试通过在url中添加用户名作为休闲来连接ftp服务器;

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