提问者:小点点

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


我们使用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();
    }

所以我们做了一些测试来找出问题所在

  1. 使用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是否可以设置每个目录的最大目录吗?帮助将不胜感激。


共2个答案

匿名用户

MSDN似乎认为您的路径是相对的,因此它试图使用提供的凭据登录到FTP服务器,然后将当前目录设置为 /path目录。如果这不是你的文件所在的目录,你会得到一个550的错误。

匿名用户

显然这也可能是防病毒干扰。

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

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

https://community.spiceworks.com/topic/239423-the-specified-network-name-is-no-longer-available-while-writing-to-shared-dir