好吧,这就是我正在尝试建立一个轮询系统来从几个激光系统中提取日志文件的方法,每个激光系统都有自己的 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 批处理文件,因为让所有东西都在程序中运行会更加优雅和易于使用,这真的会让人感到难过。有什么想法吗?