【问题标题】:FtpWebRequest: 550 file not found errorFtpWebRequest:550 文件未找到错误
【发布时间】:2012-04-02 16:00:26
【问题描述】:

我正在尝试从 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 客户端配置文件 Windows 服务。

如果有任何帮助,我将不胜感激。

【问题讨论】:

  • 您是否在浏览器中尝试过相同的 URL 并且它在那里工作?

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      • 2015-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多