【问题标题】:ftpwebrequest.getresponse is throwing 550 access deniedftpwebrequest.getresponse 抛出 550 access denied
【发布时间】:2016-01-28 20:13:52
【问题描述】:

我想弄清楚如何用 C# 将此文件上传到我的 ftp 服务器。当它在ftpwebrequest 上调用getResponse() 时,它会抛出一个错误,上面写着“550 - 拒绝访问”。我不知道为什么。我可以使用相同的凭据通过 Filezilla 连接到服务器。

这是我的连接代码:

private void UploadFileToFTP(HttpPostedFile file, string server, string user, string pass)
    {
        string uploadUrl = server + file.FileName;
        string uploadFileName = Path.GetFileName(file.FileName);

        Stream streamObj = file.InputStream;
        Byte[] buffer = new Byte[file.ContentLength];
        streamObj.Read(buffer, 0, buffer.Length);
        streamObj.Close();
        streamObj = null;
        try
        {
            SetMethodRequiresCWD();
            FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(uploadUrl);
            //ftp.Method = WebRequestMethods.Ftp.MakeDirectory;
            ftp.Method = WebRequestMethods.Ftp.UploadFile;
            ftp.UsePassive = true;
            ftp.Credentials = new NetworkCredential(user, pass);
            FtpWebResponse CreateForderResponse = (FtpWebResponse)ftp.GetResponse();

            if (CreateForderResponse.StatusCode == FtpStatusCode.PathnameCreated)
            {

                string ftpUrl = string.Format("{0}/{1}", uploadUrl, uploadFileName);

                FtpWebRequest requestObj = FtpWebRequest.Create(ftpUrl) as FtpWebRequest;

                requestObj.KeepAlive = true;
                requestObj.UseBinary = true;

                requestObj.Method = WebRequestMethods.Ftp.UploadFile;
                requestObj.Credentials = new NetworkCredential(user, pass);

                Stream requestStream = requestObj.GetRequestStream();
                requestStream.Write(buffer, 0, buffer.Length);
                requestStream.Flush();
                requestStream.Close();
                requestObj = null;

            }
        }
        catch (WebException e)
        {
            String status = ((FtpWebResponse)e.Response).StatusDescription;
        }
    }

【问题讨论】:

  • 当您通过 file-zilla 连接到同一个 ftp 站点时,您实际上是否使用 file-zilla 成功上传
  • 是的,filezilla 可以正常上传和下载
  • 尝试在这里使用WebClient stackoverflow.com/questions/15268760/…
  • 我可以用 httppostedfile 做到这一点吗?我没有 httppostedfile 的文件路径。
  • 你有防火墙在某处运行吗?

标签: c# .net ftp


【解决方案1】:

好的,在阅读完此处的 cmets 后,我又对此进行了一些修改。我进入我的卡巴斯基设置并禁用了端口 20 和 21 的扫描。砰!文件在那里。现在由于某种原因它是空的,所以我会对此进行调查或回来寻求帮助! :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    • 2020-11-15
    • 2019-05-04
    相关资源
    最近更新 更多