FTP错误:202命令未实现 - javascript

我的处境非常令人沮丧。我需要使用FTP从某些特殊的硬件中检索列表,删除和上传文件。我所有的开发工作都是在连接到神秘盒子上的远程计算机上进行的。据我了解,该盒子可以在嵌入式软件上运行。我可以通过FTP将其发送到框的唯一方法是使用cmd并调用ftp.exe,传递ip并按Enter,然后输入,这意味着没有凭据。然后,我可以做ls。放置并删除。但是,我需要做一个dll,稍后再从hta / javascript gui中调用它,它将像这样使用:

var ftp = new ActiveXObject("Mission.FTP")

var list = ftp.ls(hostIP);

但是我尝试从C#执行的任何操作都会返回以下错误:

远程服务器返回错误:202命令未实现。

失败的C#代码是:

FtpWebRequest request = CreateRequest(url, WebRequestMethods.Ftp.ListDirectory);
        using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())

它在GetResponse()方法处失败。

FTP不是标准协议。为什么ftp.exe与执行FTP的C#方法会有不同的结果?

参考方案

按照上面的建议启用网络跟踪,我能够找到问题的确切原因。

通过查看日志:

System.Net Information: 0 : [9188] FtpControlStream#42866877 - Sending command [PASV]
System.Net.Sockets Verbose: 0 : [9188] Data from Socket#52434070::Send
System.Net.Sockets Verbose: 0 : [9188] 00000000 : 50 41 53 56 0D 0A                               : PASV..
System.Net.Sockets Verbose: 0 : [9188] Exiting Socket#52434070::Send()  -> Int32#6
System.Net.Sockets Verbose: 0 : [9188] Socket#52434070::Receive()
System.Net.Sockets Verbose: 0 : [9188] Data from Socket#52434070::Receive
System.Net.Sockets Verbose: 0 : [9188] 00000000 : 32 30 32 20 43 6F 6D 6D-61 6E 64 20 6E 6F 74 20 : 202 Command not 
System.Net.Sockets Verbose: 0 : [9188] 00000010 : 69 6D 70 6C 65 6D 65 6E-74 65 64 2E 0D 0A       : implemented...
System.Net.Sockets Verbose: 0 : [9188] Exiting Socket#52434070::Receive()   -> Int32#30
System.Net Information: 0 : [9188] FtpControlStream#42866877 - Received response [202 Command not implemented.]
System.Net.Sockets Verbose: 0 : [9188] Socket#52434070::Dispose()
System.Net Information: 0 : [9188] FtpWebRequest#7224250::(Releasing FTP connection#42866877.)
System.Net Error: 0 : [9188] Exception in FtpWebRequest#7224250::GetResponse - The remote server returned an error: 202 Command not implemented.

解决问题的方法很简单:

request.UsePassive = false;

获取JavaScript值到C#字符串 - javascript

                        是否可以在C#中执行类似的操作?该值为“ 10/05/2014”string jsValue = javascript("$('#EstimatedStartDate').val()"); 参考方案 您能否更详细地阐明您要做什么。看来您正在尝试从javascript(客户…

写一行到javascript文件 - javascript

我正在使用数组来显示网站中的一些图像:var paintingImages; paintingImages = [ { url: 'images/objects/ron.jpg', alt: 'ron' } ]; 该js代码写在paintings.js中,我的主要js代码写在main.js文件中我已经为艺术家制作了这个…

.NET C#Webbrowser填充输入,不带ID或类名 - javascript

我需要在网络浏览器中填写一个输入,但这不起作用。我认为必须使用name属性来完成,但是怎么做呢?foreach (HtmlElement login in webBrowser1.Document.GetElementsByTagName("input")) { if (login.GetAttribute("name"…

Javascript-从当前网址中删除查询字符串 - javascript

单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…

ASP.NET-如何更改JSON序列化的方式? - javascript

我正在使用ASP.NET通过以下查询返回Json文件:public ActionResult getTransactionTotals(int itemID) { DBEntities db = new DBEntities(); var query = from trans in db.Transactions // Linq query removed …