【问题标题】:How can I connect on my own PC to a local FileZilla FTP server for testings?如何在我自己的 PC 上连接到本地 FileZilla FTP 服务器进行测试?
【发布时间】:2015-03-28 11:14:37
【问题描述】:

我下载并安装了 FileZilla 服务器。

然后我在 FileZilla 中使用地址:127.0.0.1 端口:14147 和管理员用户名:admin

而且连接良好。
但是现在我想使用C#连接到服务器上传下载和删除文件。

这是我的代码。当我在 ipage.com 上使用我的在线 FTP 服务器时,此代码运行良好

但现在我想将它与 FileZilla 一起使用。

string fff = "";
public string[] GetFileList()
{
    string[] downloadFiles;
    StringBuilder result = new StringBuilder();
    WebResponse response = null;
    StreamReader reader = null;
    try
    {
        FtpWebRequest reqFTP;
        reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + f.Host + "/"));
        fff = "ftp://" + f.Host + "/";
        reqFTP.UseBinary = true;
        reqFTP.Credentials = new NetworkCredential(f.Username, f.Password);
        reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
        reqFTP.Proxy = null;
        reqFTP.KeepAlive = false;
        reqFTP.UsePassive = false;
        response = reqFTP.GetResponse();
        reader = new StreamReader(response.GetResponseStream());
        string line = reader.ReadLine();
        while (line != null)
        {
            result.Append(line);
            result.Append("\n");
            line = reader.ReadLine();
        }
        result.Remove(result.ToString().LastIndexOf('\n'), 1);
        return result.ToString().Split('\n');
    }
    catch (Exception ex)
    {
        if (reader != null)
        {
            reader.Close();
        }
        if (response != null)
        {
            response.Close();
        }
        downloadFiles = null;
        return downloadFiles;
    }
}

fff 我看到ftp://127.0.0.1/f.Username 是空的""f.Passwordadmin

然后我继续,我得到了异常:

The remote server returned an error: (501) Syntax error in parameters or arguments

System.Net.WebException was caught
  HResult=-2146233079
  Message=The remote server returned an error: (501) Syntax error in parameters or arguments.
  Source=System
  StackTrace:
       at System.Net.FtpWebRequest.CheckError()
       at System.Net.FtpWebRequest.SyncRequestCallback(Object obj)
       at System.IO.Stream.Close()
       at System.Net.ConnectionPool.Destroy(PooledStream pooledStream)
       at System.Net.ConnectionPool.PutConnection(PooledStream pooledStream, Object owningObject, Int32 creationTimeout, Boolean canReuse)
       at System.Net.FtpWebRequest.FinishRequestStage(RequestStage stage)
       at System.Net.FtpWebRequest.GetResponse()
       at FTP_ProgressBar.FtpProgress.GetFileList() in c:\ftp_progressbar\FTP_ProgressBar\FtpProgress.cs:line 342
  InnerException:

第 342 行是:

response = reqFTP.GetResponse();

我想要演示 FTP 服务器,以便我可以在上面检查我的 C# 程序。

【问题讨论】:

    标签: c# .net winforms ftp


    【解决方案1】:

    501 很可能是由 FileZilla 服务器发送的,因为 USER 命令中缺少用户名。如果不提供用户名,您将无法登录 FTP 服务器。

    您必须使用 FTP 帐户登录服务器。您无法使用管理密码登录。

    在 FileZilla 服务器界面中,转到菜单编辑 > 用户,创建一个 FTP 用户,并在您的代码中使用它的用户名/密码。

    【讨论】:

      猜你喜欢
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-02
      • 1970-01-01
      相关资源
      最近更新 更多