ftpwebrequest.getresponse抛出550拒绝访问

时间:2015-10-28 20:59:22

标签: c# .net ftp

我试图找出如何在C#中将此文件上传到我的ftp服务器。当它在getResponse()上调用ftpwebrequest时,会抛出一个错误,表示" 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;
        }
    }

1 个答案:

答案 0 :(得分:2)

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

相关问题