2

我正在创建一个用于通过 FTP 传输文件的 C# 应用程序。该代码在 5 个不同的系统上都可以正常工作,并且都具有良好的 Internet 访问权限,但我现在有第 6 个系统在关闭 FTPRequest 流时遇到问题。该系统位于该国的偏远地区,传输速度仅为 10 KBps 左右。我不知道传输速度是否与此问题有关。

这是我的代码。

string path = "ftp://ftp.myftpsite.com/SomeDirectory/SomeFile.avi";

FtpWebRequest reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(path));

reqFTP.Credentials = new NetworkCredential(tbUsername.Text, tbPassword.Text);
reqFTP.KeepAlive = false;

reqFTP.Method = WebRequestMethods.Ftp.UploadFile;

reqFTP.UseBinary = true;
reqFTP.ContentLength = buffer.Length;

using (Stream strm = reqFTP.GetRequestStream())
{
   for (long l = 0; l < buffer.Length; l += 1024)
   {
      if (buffer.Length >= l + 1024)
      {
         strm.Write(buffer, (int)l, 1024);
      }
      else
      {
         int RemainingBytes = (int)(buffer.Length - l);
         strm.Write(buffer, (int)l, RemainingBytes);
      }
   }
}//Code gets stuck exiting the using statement

我尝试不使用 using 语句并使用 .Close() 关闭流,但它也卡在那里。

我一直在寻找可能的解决方案和解决方法 3 天,但无法解决这个问题。仅供参考,此代码在与我的主程序不同的线程中运行,并且仅在 6 个系统中的 1 个系统上失败。

4

0 回答 0