C# 为什么FTP上传有时才成功?
我正在做一个项目,它将一些信息收集到一个.CSV文件中,然后将该文件发送到ftp服务器 程序有时会成功发送文件,但有时会停止并抛出错误: System.dll中发生类型为“System.Net.WebException”的未处理异常 附加信息:远程服务器返回错误:227进入被动模式(192168,10170216244) 有人能发现我做错了什么吗 提前谢谢 这是我的密码C# 为什么FTP上传有时才成功?,c#,ftp,C#,Ftp,我正在做一个项目,它将一些信息收集到一个.CSV文件中,然后将该文件发送到ftp服务器 程序有时会成功发送文件,但有时会停止并抛出错误: System.dll中发生类型为“System.Net.WebException”的未处理异常 附加信息:远程服务器返回错误:227进入被动模式(192168,10170216244) 有人能发现我做错了什么吗 提前谢谢 这是我的密码 private void sendFile_Click(object sender, EventArgs e)
private void sendFile_Click(object sender, EventArgs e)
{
Upload("ftp://100.64.44.12", "UsernameHere", "PasswordHere", @"C:\Users\Kasper\Documents\testFolder\data.csv");
}
public void Upload(string FTPAddress, string username, string password, string filePath)
{
FileStream stream = File.OpenRead(filePath);
byte[] buffer = new byte[stream.Length];
stream.Read(buffer, 0, buffer.Length);
stream.Close();
FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(FTPAddress + "/" +
Path.GetFileName(filePath));
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(username, password);
request.UsePassive = true;
request.UseBinary = false;
request.KeepAlive = true;
StreamReader sourceStream = new StreamReader("testfile.txt");
byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
sourceStream.Close();
request.ContentLength = fileContents.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
MessageBox.Show("Upload File Complete, status {0}", response.StatusDescription);
response.Close();
}
尝试设置FtpWebRequest.UseAssive=falseStream requestStream=request.GetRequestStream();此行获取此错误System.dll中发生类型为“System.Net.WebException”的未处理异常其他信息:远程服务器返回错误:(500)语法错误,命令无法识别。@KasperHansen打开对
System.net
的跟踪,并在出现此异常时发布跟踪信息。您不明白什么?你访问过我提到的链接吗?签出此线程以了解跟踪信息如何帮助您检测问题。保持被动模式打开。当服务器仅允许被动连接时,发生500服务器错误。获取system.net的跟踪信息,您将在那里找到有关错误发生原因的信息。通常是防火墙。并向我们显示成功上载和失败上载的日志文件。