0

ftps 暗黙的 ssl 経由でファイルをアップロードする小さなアプリケーションを開発していますが、接続しようとしているところまで来て、「基になる接続が閉じられました: サーバーがプロトコル違反を犯しました」というエラーをキャッチしました。

これに対する解決策を探しましたが、何も見つかりません。以下のコードをコピーしました。

コードが到達FtpWebResponse response = (FtpWebResponse)request.GetResponse()し、キャッチに落ちるまでハングアップします。

また、例外中に文字列ステータス フィールドが null を返すことにも注意してください。

string ftps = "ftp://100.0.0.1:990/Test"

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftps);
request.KeepAlive = true;
request.EnableSsl = true;
request.UsePassive = true;
request.UseBinary = true;
request.Credentials = new NetworkCredential("user", "Password");

ServicePointManager.ServerCertificateValidationCallback = new  RemoteCertificateValidationCallback(ValidateCertificate);


try
{
    FtpWebResponse response = (FtpWebResponse)request.GetResponse();
    request.Method = WebRequestMethods.Ftp.UploadFile;
}
catch (WebException e)
{
    String status = ((FtpWebResponse)e.Response).StatusDescription;
}




private bool ValidateCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
     return true;
}
4

0 に答える 0