繁体   English   中英

通过SSL c#上传FTP文件

[英]FTP file upload over SSL c#

主题:通过SSL的FTP文件传输

我试图将文件上传到我拥有的一台ftp服务器上,但是到达到达侦听端口990的服务器服务器时出现异常,我认为问题出在隐式/显式设置上,有人可以建议我如何使用隐式设置通过SSL进行ftp在.net 4.0中?

我在调用方法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.");
        }

现在已经在这个问题上苦苦挣扎了几天..任何帮助将不胜感激..任何人都可以为我提供一个使用.net 4.0中的隐式设置通过SSL进行FTP的很好的例子吗?

发生了类似的问题,除了我在.net 4上遇到“处理中的本地错误”。将框架更改为.net 3.5,并且可以正常工作。

当我未在URI中设置端口时,我遇到了同样的问题,您的ftpserver变量应类似于ftp://127.0.0.1:990

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM