2011-07-27 45 views
1

我檢索從我們的FTP服務器,然後通過HTTPS放在內存中,並傳遞給客戶端文件,以允許使用的FtpWebRequest類SSL。我的一切都完美無瑕。不過,如果我打開SSL,我得到以下錯誤:ASP.NET無法沒有得到錯誤

WebException: The remote server returned an error: (500) Syntax error, command unrecognized.]
System.Net.FtpWebRequest.SyncRequestCallback(Object obj) +330
System.Net.FtpWebRequest.RequestCallback(Object obj) +23
System.Net.CommandStream.InvokeRequestCallback(Object obj) +17
System.Net.CommandStream.Abort(Exception e) +168
System.Net.FtpWebRequest.FinishRequestStage(RequestStage stage) +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.EnableSsl爲false或只是將其註釋掉,它工作正常。任何想法,我做錯了什麼。請記住,我是在使用內置的FTP服務器的IIS中的Windows XP專業版框。我從IIS的調試,我https://localhost/projectNameHere/default.aspx下運行。

回答

0

如果您信任的服務器,你可以重寫驗證過程中您的需要。

ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate); 

public static bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) 
{ 
    System.Diagnostics.Debug.WriteLine(certificate);    
    return true;   
} 

您的連接和數據仍然是安全的。你不應該使用此代碼,如果你不信任的來源,因爲來源可以是冒領。

相關問題