当前位置: 首页 > 编程语言 > C#

使用WebClient.UploadFileAsync时部分电脑上的文件没有上传到FTP服务器

时间:2023-04-10 17:10:07 C#

使用WebClient.UploadFileAsync时部分电脑上的文件没有上传到FTP服务器我在我的电脑上设置了一个服务器,我使用一个简单的C#脚本来上传文件。当我从同一台机器运行脚本时,它工作正常。当我尝试从同一或不同LAN上的另一台计算机运行脚本时,出现以下问题:(未登录)(ClientIP)>USERuserID(未登录)(ClientIP)>331PasswordrequiredforuserID(未登录)(ClientIP)>PASS***************userID(ClientIP)>230LoggedonuserID(ClientIP)>OPTSutf8onuserID(ClientIP)>202UTF8modeisalways启用。无需发送此命令。userID(ClientIP)>PWDuserID(ClientIP)>257“/”是当前目录。userID(ClientIP)>TYPEIuserID(ClientIP)>200TypesettoIuserID(ClientIP)>PASVuserID(ClientIP)>227EnteringPassiveMode(ClientIP)什么可能导致这里的问题?我从计算机收到的消息如下:(未登录)(pcIP)>USERuserID(未登录)(pcIP)>331PasswordrequiredforuserID(notloggedin)(pcIP)>PASS***************userID(pcIP)>230LoggedonuserID(pcIP)>OPTSutf8onuserID(pcIP)>202UTF8模式始终启用。无需发送此命令。userID(pcIP)>PWDuserID(pcIP)>257"/"是当前目录。userID(pcIP)>TYPEIuserID(pcIP)>200TypesettoIuserID(pcIP)>PASVuserID(pcIP)>227EnteringPassiveMode((pcIP))userID(pcIP)>STORmyTempDoc.pdfuserID(pcIP)>150打开文件上传到“/myTempDoc.pdf”用户ID(pcIP)服务器的数据通道>226成功传输“/myTempDoc.pdf”唯一的区别是在第一种情况下我无法上传所有可能有什么不同所需文件?uploadX(stringpath){stringhost="ftp://ip:port/";字符串用户=“用户ID”;stringpass="密码";WebClientXclient=newSystem.Net.WebClient();Uriuri=newUri(host+newFileInfo(path).Name);Xclient.Credentials=newSystem.Net.NetworkCredential(user,pass);Xclient.UploadFileAsync(uri,"STOR",路径);在我的主函数中,我调用了uploadX("docName")。您不是在等待上传完成。因此,如果这是一个在uploadX返回后很快退出的小型独立脚本,则在脚本/应用程序完成之前,上传可能根本不会完成。这或许可以解释不同机器上的随机行为。确保等待上传完成。通过捕获UploadFileCompleted事件,或仅使用阻塞UploadFile方法。您是否检查过防火墙以确保数据端口已打开?由于正在切换PASV模式,FTP服务器应该发送一个新的端口进行通信。通常,这些数据端口是1024到5000。关闭Windows防火墙以查看是否可以解决问题。如果是,请在防火墙中打开上述端口或告诉FileZilla使用设置中的一组特定端口并打开这些端口。以上是C#学习教程:使用WebClient.UploadFileAsync时,部分电脑上的文件没有上传到FTP服务器共享所有内容。如果对您有用,需要了解更多C#学习教程,希望您多加关注——本文整理自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: