C# ASP.NET无法使用FtpWebRequest类启用SSL,而不会出现错误

C# ASP.NET无法使用FtpWebRequest类启用SSL,而不会出现错误,c#,asp.net,ssl,c#-2.0,ftpwebrequest,C#,Asp.net,Ssl,C# 2.0,Ftpwebrequest,我正在从我们的FTP服务器检索一个文件,然后将其放入内存并通过HTTPS传递给客户端。我让一切都完美无瑕。但是,如果启用SSL,则会出现以下错误: WebException:远程服务器返回错误:(500)语法错误, 无法识别命令。] System.Net.FtpWebRequest.SyncRequestCallback(对象obj)+330 System.Net.FtpWebRequest.RequestCallback(对象obj)+23 System.Net.CommandStream.I

我正在从我们的FTP服务器检索一个文件,然后将其放入内存并通过HTTPS传递给客户端。我让一切都完美无瑕。但是,如果启用SSL,则会出现以下错误:

WebException:远程服务器返回错误:(500)语法错误, 无法识别命令。]
System.Net.FtpWebRequest.SyncRequestCallback(对象obj)+330
System.Net.FtpWebRequest.RequestCallback(对象obj)+23
System.Net.CommandStream.InvokeRequestCallback(对象obj)+17
System.Net.CommandStream.Abort(异常e)+168
System.Net.FtpWebRequest.FinishRequestStage(请求阶段)+454
System.Net.FtpWebRequest.GetResponse()+1398

这是我的密码:

FtpWebRequest ftp = (FtpWebRequest)WebRequest.Create(@"ftp://" + serverName + ":21/" + fileName);
            ftp.Credentials = new NetworkCredential(userName, password);
            ftp.UseBinary = true;
            ftp.EnableSsl = true;
            ftp.Method = WebRequestMethods.Ftp.DownloadFile;
            FtpWebResponse response = null;
            response = (FtpWebResponse)ftp.GetResponse();

如果我将ftp.enablesssl设置为false,或者只是注释掉它,它就可以正常工作。任何关于我做错了什么的想法。请记住,我使用的是内置于FTP服务器中的IIS,使用的是Windows XP Professional box。我正在从IIS进行调试,并在下运行。

如果您信任服务器,则可以根据需要覆盖验证过程

ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate);

public static bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
    System.Diagnostics.Debug.WriteLine(certificate);             
    return true;         
} 
您的连接和数据仍然是安全的。如果不信任源代码,则不应使用此代码,因为源代码可以是模拟程序