我刚刚将应用程序从 net 3.5 升级到 4.0
我使用 ftp 读取和传输文件。一切都很好,除了我连接的一台服务器。该服务器一开始很奇怪,因为我必须返回一个目录并进入另一个目录:
“ftp.server.com”实际上让我进入 ftp.server.com/up,我需要从 ftp.server.com/out 读取
我使用这个 url 得到一个文件列表:
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 下载没有问题
任何的想法?
提前致谢