主题:通过SSL传输FTP文件
我试图将文件上传到我拥有的其中一个ftp服务器 但我到达服务器时遇到异常 服务器侦听端口990 我认为问题在于隐式/显式设置 任何人都可以建议我如何使用.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.");
}
现在在这个问题上苦苦挣扎几天......非常感谢.. 任何人都可以使用.net 4.0中的隐含设置建议我使用FTP over SSL的好例子吗?
答案 0 :(得分:0)
有类似的问题,除了我得到"处理中的本地错误" on .net 4.将框架更改为.net 3.5并且工作正常。
答案 1 :(得分:-1)
当我没有在URI中设置端口时,我遇到了同样的问题,你的ftpserver变量应该类似于ftp://127.0.0.1:990