2013-02-04 222 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