C#FTP550错误创建("ftp://ftp.mydomain.com/folder/file.zip");request.Credentials=newNetworkCredential("用户名","密码");使用(varresponse=request.GetResponse()){...}}catch(WebExceptionwe){...}在request.GetResponse()处抛出异常,错误代码为550。问题不在于凭据或URI因为它们在IE中工作正常并且文件已在那里成功下载。我错过了什么?我应该使用另一种类型的凭证对象吗?我不是在请求对象上设置属性吗?任何帮助将不胜感激。原来FTP根目录不一定和URL根目录一样。也许我混淆了术语,所以让我解释一下:在我的例子中,到ftp.mydomain.com的连接已经从/文件夹开始,所以我的URL只需要是ftp://ftp.mydomain.com/file。压缩。IE8知道如何去掉原始路径中多余的/folder部分,而FtpRequest类不知道,这就是它在IE8中工作但在C#代码中不工作的原因。在本地路径部分的开头添加另一个斜杠(主机名:端口之后):varrequest=FtpWebRequest.Create("ftp://ftp.mydomain.com//folder/file.zip");这对我有用。这就是我使用的,我敢打赌.Method是您缺少的主要内容request=(FtpWebRequest)FtpWebRequest.Create(address);request.Credentials=newNetworkCredential("用户名","密码");request.UsePassive=true;请求.UseBinary=true;请求.Proxy=null;request.Method=WebRequestMethods.Ftp.DownloadFile;FtpWebResponsedataResponce=(FtpWebResponse)request.GetResponse();您尚未设置方法。request.Method=WebRequestMethods.Ftp.DownloadFile;与我的FTP服务器的连接显示不同的行为,具体取决于我尝试连接的位置。在我的本地网络中,它只在域部分后使用一个斜杠,例如ftp://test.test.com/folder/myfile.txt但在远程机器上我必须使用两个斜杠,如ftp://test.test.com//folder/myfile.txt在这两种情况下都使用双斜杠方法。我最近遇到了这个问题,经过大量测试后发现这里和那里之间的某些模块不喜欢混合大小写的URI,所以我的解决方案是在URI上使用.ToLower()以上是C#学习教程:C#FTP550错误分享的全部内容,如果对你有用,需要了解更多C#学习教程,希望大家多加关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
