C#FTP响应550:指定的网络名称不再可用

C#FTP响应550:指定的网络名称不再可用,c#,ftp,C#,Ftp,我们使用c语言开发了一个ftp文件上传应用程序# 这个应用程序已经完美地工作了很长一段时间。 在过去的几天里,用户报告他遇到了一个错误 远程服务器返回错误:(550)文件不可用(例如,找不到文件,无法访问) 我们非常惊讶,因为我们没有对编码和环境进行任何更改 这个错误是由 WebRequest request = WebRequest.Create(directoryPath); request.Method = WebRequestMethods.Ftp.MakeDirector

我们使用c语言开发了一个ftp文件上传应用程序# 这个应用程序已经完美地工作了很长一段时间。 在过去的几天里,用户报告他遇到了一个错误 远程服务器返回错误:(550)文件不可用(例如,找不到文件,无法访问) 我们非常惊讶,因为我们没有对编码和环境进行任何更改

这个错误是由

   WebRequest request = WebRequest.Create(directoryPath);
    request.Method = WebRequestMethods.Ftp.MakeDirectory;
    request.Credentials = new NetworkCredential(ftpUser, ftpPassword);
    using (var resp = (FtpWebResponse)request.GetResponse())
    {
        resp.Close();
    }
所以我们做了一些测试,试图找出问题所在

  • 使用filezilla创建一个目录,效果很好
  • 通过窗口资源管理器创建一个目录,它也可以正常工作
  • 我们发现,如果我们从ftp目录中删除一些带有文件的目录,它将恢复正常,用户可以通过c#ftp上传应用程序再次上传文件

    我猜如果ftp可以设置目录或文件的最大数量,如果目录的数量达到设置,它将关闭连接

    最后,我们尝试使用Wireshark查看ftp数据包。 并找到一个信息,说明正常ftp数据包和非正常ftp数据包之间的差异是 “响应:指定的网络名称不再可用。”

    正常ftp数据包响应:250 CWD命令成功。请求:PASV 响应:227进入被动模式(172,25230110212,41)。请求: NLST OAP响应:125个数据连接已打开;转移 启动。答复:226传输完成。请求:CWD/答复: 250 CWD命令成功

    异常ftp数据包响应:250 CWD命令成功。请求: PASV响应:227进入被动模式(172,25230110201251)。 请求:NLST OAP响应:125数据连接已打开;转移 启动。响应:指定的网络名称不再有效 可用。答复:220 Microsoft FTP服务

    有人知道ftp是否可以设置每个目录的最大目录吗?
    感谢您的帮助。

    似乎表明您的路径是相对的,因此它尝试使用提供的凭据登录到FTP服务器,然后将当前目录设置为/path目录。如果这不是文件所在的目录,则会出现550错误。

    显然,这也可能是由于防病毒干扰造成的

    我们已经做了一些额外的测试,所以我想我会回来更新。自从我禁用AVG的常驻屏蔽后,我们就停止接收错误消息

    这在VPN位置之间发生在我身上。SonicWALL已打开网关防病毒软件,它正在阻止CIFS/Netbios通信。我刚刚关掉了网关AV的那部分。现在工作


    显示一个完整的(或Wireshark捕获)文件,显示一个失败,显示一个完整的(且详细的)FileZilla日志文件,显示同一操作的成功,这两个文件都来自同一时刻。我在执行上载时遇到了相同的错误。我通过将代理属性设置为null来解决此问题。默认值为空,但不知何故,会改变内部状态。这将如何解释问题的临时性质?