【发布时间】:2013-06-25 20:27:13
【问题描述】:
好的,我正在尝试建立一个轮询系统,以从多个激光系统中提取日志文件,每个系统都有自己的 ftp。但是,我在尝试调用 FtpWebResponse 调用以下载日志文件时遇到了困难,以下是我正在使用的代码:
// Get the object used to communicate with the server.
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://192.168.10.140/param.dat");
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential("user", "pass");
request.UsePassive = false;
request.Proxy = null;
request.UseBinary = true;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
所以我冻结了最后一行:“远程服务器返回错误:(502) 命令未实现。”
我有几种不同的方法从系统中获取文件,只是为了看看它是否是我缺少的某种设置,这是我的结果:
- Microsoft CMD.exe:连接良好,可以下载文件并执行标准 ftp 命令
- Internet Explorer:输入文件地址即可下载文件
- Firefox:“远程服务器返回错误:(502) 命令未实现。”
- Chrome:“错误 606 (net::ERR_FTP_COMMAND_NOT_SUPPORTED):未知错误。”
现在我无法获得关于激光系统上实际 ftp 设置的太多信息,因为我不会在这里讨论一个很长的故事,但从我所看到的情况来看,它可能使用了某种遗留协议IE 和 CMD 支持,否则我遗漏了一些明显的东西。我试图翻转 FtpWebRequest 设置,但似乎没有任何效果。我真的很想使用这个解决方案,而不是让程序自动构建 ftp 批处理文件,因为让所有东西都在程序中运行会更加优雅和易于使用,这真的会让人感到难过。大家有什么想法吗?
【问题讨论】:
-
Levi,你看过网上
MSDN的例子吗?这是一个链接,您可以结帐以获取一些线索/想法FtpWebResponse -
感谢您的链接,但我认为我已经根据其他示例正确设置了一般调用以进行下载,获得初始化响应后的下一步是将其传递到流读取器并拉取数据以这种方式输出,但我首先需要一个积极的回应。我似乎正在连接到 ftp;在查看崩溃时引发的 webexception 时,我可以看到响应的横幅消息是正确的“220 Excimer Controller FTP Server ready”(我通过 CMD.exe 进行连接)。
标签: c# .net ftp ftpwebrequest