我构建了一个控制台应用程序,用于从远程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 /folder/test.xml
250文件已成功重命名或移动
我已经没有想法了,所以非常感谢所有的帮助!
PS。我在两个环境中使用相同的凭据连接到同一个FTP主机,我也可以在两个环境中读取文件。
答案 0 :(得分:0)
我有同样的问题。在我们的例子中,它是.Net Framework的版本。安装了4.0的服务器出现“(451)处理中的本地错误”错误。那些有4.5。安装运行没有问题。所以我们在app服务器上安装了.Net Framework 4.5,解决了这个问题。