0

トピック: SSL を介した FTP ファイル転送

私が持っているftpサーバーの1つにファイルをアップロードしようとしていますが、ポート990でリッスンしているサーバーサーバーに到達するときに例外が発生します問題は暗黙的/明示的な設定にあると思います誰でも暗黙的な設定を使用してSSL経由でftpを行う方法を提案できますか.net 4.0で?

GetRequestStream メソッドの呼び出し中に発生する例外: 基になる接続が閉じられました: サーバーがプロトコル違反を犯しました。

コード スニペットは次のとおりです。

FileInfo ExportFile = new FileInfo("C:\\ServiceXML.xml");
FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create("ftpserver" + "/FolderName/" + ExportFile.Name);
request.EnableSsl = true;
request.Credentials = new NetworkCredential("username", "password");
request.KeepAlive = true;
request.Method = WebRequestMethods.Ftp.UploadFile;
request.UseBinary = true;
request.ContentLength = ExportFile.Length;
request.UsePassive = true;
ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };

        try
        {
            int bufferLen = 4096;
            byte[] buffer = new byte[4096];
            int contentLen;

            FileStream fsExport = ExportFile.OpenRead();
            Stream ftpStream = request.GetRequestStream();

            contentLen = fsExport.Read(buffer, 0, bufferLen);

            while (contentLen != 0)
            {
                ftpStream.Write(buffer, 0, contentLen);
                contentLen = fsExport.Read(buffer, 0, bufferLen);
            }

            fsExport.Close();
            fsExport.Dispose();
            ftpStream.Close();
            ftpStream.Dispose();
        }
        catch (Exception ex)
        {
            //LogError(ex, "Error in FTP Request.");
        }

.net 4.0 で暗黙の設定を使用して FTP over SSL の良い例を教えてもらえますか?

4

2 に答える 2

0

.net 4で「処理中のローカルエラー」が発生することを除いて、同様の問題がありました。フレームワークを.net 3.5に変更すると、機能しました。

于 2016-02-16T22:52:58.520 に答える