我用C#写的FTP服务器程序,主要功能是往FTP服务器上传、下载文件、显示文件目录等文件管理方面的用途;我在自己电脑上搭建了一个FTP服务器(设置了SSL)用来测试程序,测试结果是程序预期功能都实现了;后来到公司的FTP服务器(也设置了SSL)上测试,发现连接不上公司的服务器,VS2010上运行后提示的错误为“<431> 431 Unable to negotiate secure command connection”,有没有大神知道问题出在哪里,怎么解决?
以下是部分代码:
1 #region 获取当前目录下明细(包含文件和文件夹) string[] GetFilesDetailList() 2 FtpWeb fw = new FtpWeb("10.11.11.21:990", "", "ftpuser", "1234"); //IP地址、端口、用户名、密码等应该是没问题的 3 string[] FilesDetailList = fw.GetFilesDetailList(); 4 int FilesDetailListLength = FilesDetailList.Length; 5 Console.WriteLine(FilesDetailListLength); 6 for (int i = 0; i < FilesDetailListLength; i += 1) 7 { 8 string FilesDetail = FilesDetailList[i]; 9 Console.WriteLine("{0}", FilesDetail); 10 } 11 #endregion 12 13 #region GetFilesDetailList() 获取当前目录下明细(包含文件和文件夹) 14 /// <summary> 15 /// 获取当前目录下明细(包含文件和文件夹) 16 /// </summary> 17 /// <returns></returns> 18 public string[] GetFilesDetailList() 19 { 20 string[] downloadFiles; 21 try 22 { 23 StringBuilder result = new StringBuilder(); 24 FtpWebRequest ftp; 25 ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI)); 26 ftp.UseBinary = true; // 指定数据传输类型 27 ftp.Credentials = new NetworkCredential(ftpUserID, ftpPassword); 28 ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails; 29 30 31 #region SSL加密 32 ftp.EnableSsl = true; 33 //如果要连接的 FTP 服务器要求凭据并支持安全套接字层 (SSL),则应将 EnableSsl 设置为true 34 //如果不写会报出421错误(服务不可用) 35 ServicePointManager.ServerCertificateValidationCallback = delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; 36 //证书验证过程 37 #endregion 38 39 40 WebResponse response = ftp.GetResponse(); 41 StreamReader reader = new StreamReader(response.GetResponseStream()); 42 string line = reader.ReadLine(); 43 while (line != null) 44 { 45 result.Append(line); 46 result.Append("\n"); 47 line = reader.ReadLine(); 48 } 49 result.Remove(result.ToString().LastIndexOf("\n"), 1); 50 reader.Close(); 51 response.Close(); 52 return result.ToString().Split('\n'); 53 } 54 catch (Exception ex) 55 { 56 downloadFiles = null; 58 Console.WriteLine("{0}", ex.Message); 59 return downloadFiles; 60 } 61 } 62 #endregion
隔江千里
慕尼黑8549860
暮色呼如
慕丝7291255
相关分类