我正在尝试从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服务。
我很感激任何帮助。
答案 0 :(得分:2)
解决了这个问题:服务运行的服务器是Hyper-X虚拟机。不知何故,VM就像一个代理。我在我的请求中添加了request.Proxy = null;
,现在上传和下载都有效。
答案 1 :(得分:0)
这个问题并没有解决我的问题。如果有人遇到此问题,也可以尝试通过在url中添加用户名作为休闲来连接ftp服务器;