2015-10-28 10 views
5

Ich versuche herauszufinden, wie diese Datei auf meinem FTP-Server in C# hochgeladen werden. Wenn es getResponse() auf ftpwebrequest aufruft, wirft es einen Fehler, der "550 - Zugriff verweigert" besagt. Ich kann nicht herausfinden warum. Ich kann eine Verbindung mit dem Server mit Filezilla gut mit den gleichen Anmeldeinformationen herstellen.ftpwebrequest.getresponse wirft 550 Zugriff verweigert

Hier ist mein Code, der die Verbindung funktioniert:

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

Wenn Sie auf die gleiche FTP-Site über Datei-Zilla verbinden Sie tatsächlich erfolgreich mit file-zilla hochladen – MethodMan

+0

ja, Upload und Download funktioniert gut mit filezilla – dmikester1

+0

versuchen Sie dies mit 'WebClient' hier http: // stackoverflow .com/questions/15268760/upload-file-zu-ftp-using-c-sharp – MethodMan

Antwort

2

OK, ich gebastelt um mit diesem etwas mehr nach hier durch die Kommentare zu lesen. Ich ging in meine Kaspersky-Einstellungen und deaktivierte das Scannen von Port 20 und 21. Boom! Die Datei ist da. Jetzt kommt es aus irgendeinem Grund leer, also werde ich das untersuchen oder für etwas Hilfe hier zurückkommen! :)