2013-02-04 603 views
0

主題:通過SSLFTP上傳文件通過SSL C#

我嘗試同時到達服務器 服務器偵聽端口990 上傳文件到FTP服務器,我有 但即時得到例外的一個FTP文件傳輸我認爲這個問題是隱式/顯式設置 任何人都可以建議我如何使用.net 4.0中的隱式設置通過SSL的ftp?

我在調用方法GetRequestStream時遇到異常:底層連接已關閉:服務器提交協議違規。

這裏是代碼片段:

FileInfo ExportFile = new FileInfo("C:\\ServiceXML.xml"); 
FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create("ftpserver" + "/FolderName/" + ExportFile.Name); 
request.EnableSsl = true; 
request.Credentials = new NetworkCredential("username", "password"); 
request.KeepAlive = true; 
request.Method = WebRequestMethods.Ftp.UploadFile; 
request.UseBinary = true; 
request.ContentLength = ExportFile.Length; 
request.UsePassive = true; 
ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; 

     try 
     { 
      int bufferLen = 4096; 
      byte[] buffer = new byte[4096]; 
      int contentLen; 

      FileStream fsExport = ExportFile.OpenRead(); 
      Stream ftpStream = request.GetRequestStream(); 

      contentLen = fsExport.Read(buffer, 0, bufferLen); 

      while (contentLen != 0) 
      { 
       ftpStream.Write(buffer, 0, contentLen); 
       contentLen = fsExport.Read(buffer, 0, bufferLen); 
      } 

      fsExport.Close(); 
      fsExport.Dispose(); 
      ftpStream.Close(); 
      ftpStream.Dispose(); 
     } 
     catch (Exception ex) 
     { 
      //LogError(ex, "Error in FTP Request."); 
     } 

這個問題了幾天now..any幫助將不勝感激掙扎.. 可以使用隱式的設置,任何人都提出了基於SSL的FTP我很好的例子。網絡4.0?

+0

當你嘗試過普通的FTP會發生什麼?這可能是一個SSL證書錯誤問題(如果你想要這個問題可以繞過),但我只想確認一下。 –

+0

我試過request.EnableSSL = false;它給了我同樣的錯誤:( – pibcat

+0

從我的開發環境,我試圖FireZilla連接到服務器和上傳成功的文件..不知道我的代碼有什麼問題.. – pibcat

回答

0

有類似的問題,除了我在.NET上得到「處理本地錯誤」4.更改框架到.NET 3.5,它的工作。

-1

我時,我並沒有設置端口URI中的同樣的問題,你的FTPServer的變量應該是這樣ftp://127.0.0.1:990