主题:基于 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 的好例子吗?