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.stacktrace :''在 System.Net.FtpWebRequest.EndGetResponse (IAsyncResult asyncResult) [0x00052] 在 /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:411 在 System.Net.FtpWebRequest。 GetResponse () [0x00009] 在 /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) [ 0x00078] 在 /Users/.../App_Code/FTPHelper.cs:92 '

任何帮助,将不胜感激。我使用 MonoDevelop 作为 IDE 在我的 Mac 上工作,不知道这是否会给这个元素带来任何机会..

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 回答