亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用C#寫的FTP服務器程序,可以連上自建的服務器,但連接不上公司的服務器,并顯示431錯誤,怎么解決?

用C#寫的FTP服務器程序,可以連上自建的服務器,但連接不上公司的服務器,并顯示431錯誤,怎么解決?

C#
一只名叫tom的貓 2018-12-06 15:21:05
我用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 ? ?
查看完整描述

5 回答

?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

公司的FTP服務器時用serv-U建的,我后來在自己電腦上用serv-U建了個服務器(設置了SSL),然后用FlashFXP(也設置了SSL)去連接,一開始連不上,后來重裝FlashFXP去連接,發現會彈出下圖:

選擇“接受并保存”,就可以連上服務器了,所以本問題原因應該是是代碼里面沒有“接受并保存”證書;有沒有人知道如何用C#寫出“接受并保存”證書?

查看完整回答
反對 回復 2018-12-24
?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

sftp 不是用端口號22嗎?

查看完整回答
反對 回復 2018-12-24
?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

我自己搭建的服務器的端口號確實是22,隱式連接的FTP服務器通常使用990端口

查看完整回答
反對 回復 2018-12-24
?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

謝謝,程序已經寫得差不多了,改用第三方FTPClient會增大工作量,還是想想怎么解決上述問題吧

查看完整回答
反對 回復 2018-12-24
  • 5 回答
  • 0 關注
  • 854 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號