我正在创建一个用于通过 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 个系统上失败。