首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:(502)命令未实现。使用FtpWebResponse .net

错误:(502)命令未实现。使用FtpWebResponse .net
EN

Stack Overflow用户
提问于 2013-06-25 20:27:13
回答 1查看 10.6K关注 0票数 0

是的,下面是我尝试建立一个轮询系统,从几个激光系统中提取日志文件,每个系统都有自己的ftp。但是,在试图调用FtpWebResponse调用下载日志文件时遇到了困难--下面是我使用的代码:

代码语言:javascript
复制
// 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 :输入地址来文件,它可以很好地下载文件
  • Firefox:“远程服务器返回一个错误:(502)命令未实现。”
  • Chrome:“错误606 (net::ERR_FTP_COMMAND_NOT_SUPPORTED):未知错误”。

现在,我在激光系统上的实际ftp设置上没有多少信息,因为我不会进入这里,但从我所看到的情况来看,它可能使用了IE和CMD支持的某种遗留协议,或者我遗漏了一些显而易见的东西。我尝试过翻转FtpWebRequest设置,但似乎没有任何效果。我真的很想使用这个解决方案,而不是让程序自动构建ftp批处理文件,因为它只会让人感到悲哀,因为在程序中运行所有的东西都会更优雅,更容易使用。伙计们有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-25 20:39:12

可能导致502错误的原因之一是在服务器上禁用激活模式时尝试使用活动模式。尝试使用被动模式:

代码语言:javascript
复制
request.UsePassive = true

同时,来自文档

URI可以是相对的,也可以是绝对的。如果URI的形式是"ftp://contoso.com/%2fpath“(%2f是转义的'/'),那么URI是绝对的,当前目录是/path。但是,如果URI的形式为"ftp://contoso.com/path",则.NET框架首先登录到.NET服务器(使用凭据属性设置的用户名和密码),然后将当前目录设置为/path。

尝试将URI更改为绝对形式--它可能有助于避免您正在看到的PWD。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17306890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档