我已经构建了一个控制台应用程序,可以从远程 FTP 读取和移动文件。在我将代码部署到生产环境之前,一切都很顺利。
当我连接到 FTP 时,我首先要求的是在两种环境中都可以使用的 listDirectory。之后我尝试从根目录移动文件,但这仅适用于开发环境!?在生产中我得到以下错误代码:“远程服务器在处理中返回错误(451)本地错误”
这是移动一个文件的代码:
var uri = new Uri("ftp://ftp.example.com/test.xml");
var request = (FtpWebRequest)WebRequest.Create(uri);
request.Credentials = new NetworkCredential(_username, _password);
request.UsePassive = true;
request.Method = WebRequestMethods.Ftp.Rename;
request.RenameTo = "/folder/test.xml";
(FtpWebResponse)request.GetResponse();
还应该提到我能够使用命令行在生产中移动文件:
ftp ftp.example.com
用户名: .....
密码: .....
重命名 test.xml /文件夹/test.xml
250 文件重命名或移动成功
我的想法已经用完了,因此感谢所有帮助!
PS。我在两个环境中使用相同的凭据连接到同一个 FTP 主机,并且我还可以在两个环境中读取文件。