2013-12-11 147 views
3

嘗試通過C#桌面應用程序將文件上載到我的服務器時出現以下錯誤:「遠程證書根據驗證過程無效。 「這與SSL證書有關。這是我的網站,由Arvixe託管。下面是我使用的代碼:SSL證書問題 - 根據驗證程序,遠程證書無效

 public void Upload(string strFileToUpload) 
    { 
     FileInfo fiToUpload = new FileInfo(strFileToUpload); 
     FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://www.sd.arvixe.com/" + strDomain + "/wwwroot/OnlineGalleries/" + strOnlineGalleryName + "/Gallery/" + fiToUpload.Name); 
     request.EnableSsl = true; 
     request.Method = WebRequestMethods.Ftp.UploadFile; 
     request.Credentials = new NetworkCredential("usr", "psw"); 
     Stream sFTP = request.GetRequestStream(); 
     FileStream file = File.OpenRead(strFileToUpload); 
     int length = 1024; 
     byte[] buffer = new byte[length]; 
     int bytesRead = 0; 
     do 
     { 
      bytesRead = file.Read(buffer, 0, length); 
      sFTP.Write(buffer, 0, bytesRead); 
     } 
     while (bytesRead != 0); 
     file.Close(); 
     sFTP.Close(); 
    } 

此代碼工作正常,如果我設置request.EnableSsl =假。我不知道該怎麼做。我已經嘗試將URI設置爲ftps://和sftp://,但是它們返回錯誤「無法識別URI前綴」。任何幫助表示讚賞。

+0

http://ftps.codeplex.com/檢查您是否已經打到這裏記錄的FtpWebRequest的限制。 'sftp'不是'ftps'。確保你去維基百科,瞭解其中的差異。 –

回答

8

難以測試您的代碼,因爲它連接到公共服務。但是,如果你只是想忽略SSL錯誤或許這可以幫助你做到這一點:

System.Net.ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true; 
+1

謝謝你,現在已經找了幾個星期了。 – b729sefc

+0

非常感謝你 – om471987

相關問題