2015-10-28 7 views
5

私はこのファイルをC#の自分のftpサーバーにアップロードする方法を理解しようとしています。 ftpwebrequestgetResponse()を呼び出すと、「550 - アクセス拒否」というエラーが表示されます。なぜ私は理解できません。私は同じ資格情報を使用してFilezillaを使ってサーバーに接続できます。ftpwebrequest.getresponseが550のアクセスを拒否しました

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; 
     } 
    } 
+0

file-zillaを使用して同じftpサイトに接続すると、実際にファイル-zillaを使用して正常にアップロードしますか? – MethodMan

+0

はい、アップロードとダウンロードはファイルzillaでうまく動作します。 – dmikester1

+0

ここで 'WebClient'を使用してみてくださいhttp:// stackoverflow .com/questions/15268760/upload-file-to-ftp-using-c-sharp – MethodMan

答えて

2

OKが、私はここのコメントを読ん後、このいくつかのより多くの周りティンカー製:

は、ここで接続を行います私のコードです。私はカスペルスキーの設定に入り、ポート20と21のスキャンを無効にしました。ブーム!ファイルはそこにあります。何らかの理由で空になってしまったので、私はそれを調べるか、ここで助けを求めて戻ってきます! :)

関連する問題