我刚刚将应用程序从net 3.5升级到4.0
我使用ftp读取和传输文件。除了我连接的服务器之外,一切都很棒。该服务器开始时很奇怪,因为我必须返回一个目录并进入另一个目录:
“ftp.server.com”实际上让我进入ftp.server.com/up,我需要阅读ftp.server.com/out
我使用此网址获取文件列表:
ftp://ftp.server.com/%2fout
以这种方式创建Web请求:
var request = (FtpWebRequest) WebRequest.Create("ftp://ftp.server.com/%2fout");
我得到文件列表 - 没问题,所以该方法适用于连接到目录,但是当尝试读取其中一个文件时,我现在收到错误。
我以这种方式创建了这个请求:
var request = (FtpWebRequest)WebRequest.Create("ftp://ftp.server.com/%2fout/" + filename);
我已将请求的URI记录为:
ftp://ftp.server.com//out/ORDER25260.xml_XL1014254ORDER25260_response.xml
我得到了这个堆栈跟踪:
The remote server returned an error: (550) File unavailable (e.g., file not found, no access). at System.Net.FtpWebRequest.CheckError()
at System.Net.FtpWebRequest.SyncRequestCallback(Object obj)
at System.IO.Stream.Close()
at System.Net.ConnectionPool.Destroy(PooledStream pooledStream)
at System.Net.ConnectionPool.PutConnection(PooledStream pooledStream, Object owningObject, Int32 creationTimeout, Boolean canReuse)
at System.Net.FtpWebRequest.FinishRequestStage(RequestStage stage)
at System.Net.FtpWebRequest.SyncRequestCallback(Object obj)
at System.Net.CommandStream.Abort(Exception e)
at System.Net.CommandStream.CheckContinuePipeline()
at System.Net.FtpDataStream.System.Net.ICloseEx.CloseEx(CloseExState closeState)
at System.Net.FtpDataStream.Dispose(Boolean disposing)
at System.IO.Stream.Close()
at CustomModules.CustomModules.SupplierFunctions.FtpMethods.GetFile(SynsamSupplierSetting setting, String filename, Boolean deleteAfterLoad) in D:\WORK\dynamicweb\Source\CustomModules\SupplierFunctions\FtpMethods.cs:line 295
我使用相同的凭据通过FileZilla下载noproblem
有什么想法吗?
提前致谢
答案 0 :(得分:0)
使用此主题的信息解决了这个问题:
550 file unavailable error with FtpWebRequest class file upload. Works fine in FileZilla
用户SteveCalPoly写道:
显然,在从.NET 3.5移动时,CWD命令行为发生了变化 到4.0。
您必须先在此链接中调用该方法。
问题与上传有关,所以我在第一次谷歌中错过了答案