【发布时间】:2013-11-19 08:03:42
【问题描述】:
我有一个小的 C# winform,我在其中生成一些文本文件,然后将它们移动到 ftp 服务器。 当我尝试将它们移动到生产服务器时,它在
下失败远程服务器返回错误:(530) 未登录。
如果我通过 cmd/ftp 使用相同的 ftp 地址、用户名和密码登录 ftp,一切正常。我还在我的机器上安装了一个本地 ftp 服务器并对其进行了测试,看看我的代码是否会产生错误,但在本地它就像一个魅力,我只有生产 ftp 服务器有问题。 下面是我连接文件并将文件上传到 ftp 服务器的代码:
string[] FileName = Directory.GetFiles(outputpath);
foreach (string txtFile in FileName)
{
FileInfo toUpload = new FileInfo(txtFile);
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + tbFTPAddress.Text + @"//" + toUpload.Name);
request.Credentials = new NetworkCredential(tbFTPUserName.Text.Trim(), tbFTPPassword.Text.Trim());
request.Method = WebRequestMethods.Ftp.UploadFile;
Stream ftpStream = request.GetRequestStream();
FileStream file = File.OpenRead(txtFile);
int length = 1024;
byte[] buffer = new byte[length];
int bytesRead = 0;
try
{
do
{
bytesRead = file.Read(buffer, 0, length);
ftpStream.Write(buffer, 0, bytesRead);
}
while (bytesRead != 0);
file.Close();
ftpStream.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error encountered!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
if (file != null) file.Close();
if (ftpStream != null) ftpStream.Close();
}
}
错误来自:Stream ftpStream = request.GetRequestStream();
有什么想法吗?
谢谢!
【问题讨论】:
-
我应该补充一点,密码包含 * 字符。这会是个问题吗?
-
您是否尝试过使用不同的外部 ftp 服务器?
标签: c# ftp stream filestream ftpwebrequest