1

私はこの要素を理解しようとしています.アップロード方法を除いて、すべて完全に機能するいくつかのアクションを備えたftpモジュールを作成しました. 実際には機能しますが、それでもエラーが返されます。

そのため、しばらくするとタイムアウト エラーが発生しますが、ftp で確認すると、ファイルは正常に追加されています。なので、この機能は理解できません。

私のコード:

public static Boolean upload(string remoteFile, string localFile, string applicatie_url) {
        Boolean returnbool = false;

        try {

            FtpWebRequest ftpRequest;
            FtpWebResponse ftpResponse = null;
            Stream ftpStream = null;

            ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + remoteFile);
            ftpRequest.Credentials = new NetworkCredential(user, pass);
            ftpRequest.UseBinary = true;
            ftpRequest.UsePassive = true;
            ftpRequest.KeepAlive = true;
            ftpRequest.Method = WebRequestMethods.Ftp.UploadFile; // upload

            byte[] b = File.ReadAllBytes(localFile);
            ftpRequest.ContentLength = b.Length;
            ftpStream = ftpRequest.GetRequestStream();

            try {

                ftpStream.Write(b, 0, b.Length);
                ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
            } catch (Exception ex) {
                                  // Error catching
            }

            // Cleanup
            ftpStream.Close();
            ftpRequest = null;
            ftpResponse = null;
            returnbool = true;

        } catch (Exception ex) { 
          // Error catching
        }

        return returnbool;
    }

私のex.message:「転送がタイムアウトしました。」

私の ex.stacktrace : ' ' at System.Net.FtpWebRequest.EndGetResponse (IAsyncResult asyncResult) [0x00052] in /Users/builder/data/lanes/mono-mac-ui-refresh-2-10/2baeee2f/source/bockbuild/ profile/mono-2-10/build-root/mono-2.10.11/_build/mono-2.10.11.git/mcs/class/System/System.Net/FtpWebRequest.cs:411 を System.Net.FtpWebRequest に設定します。 GetResponse () [0x00009] in /Users/builder/data/lanes/mono-mac-ui-refresh-2-10/2baeee2f/source/bockbuild/profiles/mono-2-10/build-root/mono-2.10. 11/_build/mono-2.10.11.git/mcs/class/System/System.Net/FtpWebRequest.cs:426 at AutoPolis.FTPHelper.upload (System.String remoteFile、System.String localFile、System.String applicatie_url) [ /Users/.../App_Code/FTPHelper.cs:92 の 0x00078] '

どんな助けでも大歓迎です。私は自分の Mac で MonoDevelop を IDE として使用していますが、これがこの要素に何らかのチャンスをもたらすかどうかはわかりません..

4

1 に答える 1

1

過去にいくつかの ftp プログラムを見てきましたが、コードのクリーンアップで ftpResponse = null; と書いていることに気付きました。しかし、私は「ftpResponse.Close();」を使います。あなたのスタックトレースは FTPWebRequest に言及しているようですので、これが役立つかもしれません!

psこれが役立つかもしれません:http://www.codeproject.com/Tips/443588/Simple-Csharp-FTP-Class

于 2013-04-20T15:08:07.000 に答える