2016-04-07 5 views
1

Ich habe ein Problem beim Hochladen einer Datei in FTP-Server. Wenn ich den FileZilla Server auf meinem Computer starte (127.0.0.1), werden die Bilddateien erfolgreich hochgeladen. Aber ich führe FileZilla Server auf einem anderen Computer im selben Netzwerk (10.0.1.25). Ich kann Verzeichnisse auf diesem Computer erstellen, aber ich kann die Bilddatei nicht hochladen, obwohl mein Benutzer die volle Kontrolle über diesen Computer hat.FTP-Datei-Upload im lokalen Netzwerk C#

public bool Upload(Stream srcStream, string dstFilePath) 
    { 
     Create FtpWebRequest object from the Uri provided 
     FtpWebRequest reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(serverUri + dstFilePath)); 
     reqFTP.Credentials = credential; 
     reqFTP.Method = WebRequestMethods.Ftp.UploadFile; 
     reqFTP.UseBinary = true; 
     reqFTP.Proxy = null; 
     reqFTP.UsePassive = false; 
     reqFTP.KeepAlive = false; 
     reqFTP.ContentLength = srcStream.Length; 
     byte[] buff = new byte[UPLOAD_DOWNLOAD_BUFFER_SIZE]; 
     int contentLen; 

     // Stream to which the file to be upload is written 

      using (Stream dstStream = reqFTP.GetRequestStream()) 
      { 
       // Read from the file stream 2kb at a time 
       contentLen = srcStream.Read(buff, 0, UPLOAD_DOWNLOAD_BUFFER_SIZE); 

       // Till Stream content ends 
       while (contentLen != 0) 
       { 
        // Write Content from the file stream to the FTP Upload Stream 
        dstStream.Write(buff, 0, contentLen); 
        contentLen = srcStream.Read(buff, 0, UPLOAD_DOWNLOAD_BUFFER_SIZE); 
       } 

       dstStream.Close(); 
      } 
     } 

     // Get the response to the upload request. 
     bool ret; 
     FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse(); 
     // ret = (response.StatusCode == FtpStatusCode.ClosingData); // 
     response.Close(); 

     ret = (GetFileSize(dstFilePath) == srcStream.Length); 

     return ret; 
    } 

Wenn i die Zeile 9 bis reqFTP.UsePassive = true ändern, gibt der Server den (227 eingeben Passiv-Modus (h1, h2, h3, h4, p1, p2)). Jetzt gibt es zurück (500) Syntaxfehler, Befehl nicht erkannt. Was wird das Problem? Danke

+0

Ich habe mein Antivirenprogramm gestoppt. Dann wird die Datei übertragen. –

Antwort

0

Ich kann Image Filezilla hochladen, während Antivirus läuft. Allerdings, wenn ich es mit meinem Codeblock versuche. Es gibt Portfehlermeldung zurück. Nachdem Antivirus beendet wurde, funktioniert alles gut.