尝试通过C#桌面应用程序将文件上传到我的服务器时出现以下错误:“根据验证程序,远程证书无效。”这与SSL证书有关。它是由我的网站由Arvixe托管。这是我使用的代码:
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 = false,此代码可以正常工作。我不知道该怎么做。我已经尝试将URI设置为ftps://和sftp://,但它们返回错误“无法识别URI前缀”。任何帮助表示赞赏。
答案 0 :(得分:10)
难以在连接到公共服务时测试代码。但是,如果你只是想忽略SSL错误,也许这可以帮助你做到这一点:
System.Net.ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;