使用C#将文件FTP到大型机,包括Datasets–将FTP脚本转换为FtpWebRequest代码我使用cmd(Windows)发送一个文件到IBM大型机,它像这样工作正常:打开abc.wyx.state.aa.bbUserPasslcdc:Transfer>Putexamplefile'ABCD.AA.C58FC.ABC1FD.ZP3ABC就在附近,我需要将其转换为C#。我一直在尝试使用FtpWebRequest但没有成功。我不知道如何包含数据集。当我运行该应用程序时,出现以下错误:((System.Exception)(ex))。消息“远程服务器返回错误:(550)文件不可用(例如,找不到文件,没有访问权限)。”550无法存储远程服务器返回错误:(550)文件不可用(例如,找不到文件,无法访问)。((FtpWebResponse)ex.Response).StatusDescription"550Couldnotstore/'ABCD.AA.C58FC.ABC1FD.ZP3ABC/examplefile'rn"这是我在C#stringuser="user";中得到的内容stringpwd="密码";stringftpfullpath=@"ftp://abc.wyx.state.aa.bb//'ABCD.AA.C58FC.ABC1FD.ZP3ABC'/examplefile'";尝试{FtpWebRequestftp=(FtpWebRequest)FtpWebRequest.Create(ftpfullpath);ftp.Credentials=newNetworkCredential(user,pwd);ftp.KeepAlive=真;ftp.UseBinary=false;//使用ascii.ftp.Method=WebRequestMethods.Ftp.UploadFile;FileStreamfs=File.OpenRead(输入文件路径);byte[]buffer=newbyte[fs.Length];fs.Read(buffer,0,buffer.Length);fs.Close();流ftpstream=ftp.GetRequestStream();ftpstream.Write(缓冲区,0,buffer.Length);ftpstream.Close();}catch(WebExceptionex){Stringstatus=((FtpWebResponse)ex.Response).StatusDescription;抛出新的异常(状态);您没有指定运行ftp脚本的平台。我假设是Windows。当您使用windowsftp命令时,例如:putlocalpathremotepath它会导致在FTP服务器上进行以下调用:STORremotefile同样,如果您使用FtpWebRequest和URL(如ftp://example.com/remotepath),则会在FTP服务器上跟踪(相同)调用的结果:STOREremotepath请注意,主机名(example.com)后的第一个斜杠被省略。这意味着您的ftp脚本命令Openabc.wyx.state.aa.bb...Putexamplefile'ABCD.AA.C5879.ABC123.123ABC'转换为FtpWebRequestURL,如:stringftpfullpath=@"ftp://abc.wyx.state.aa.bb/'ABCD.AA.C5879.ABC123.123ABC'";两者都会导致FTP服务器上的此调用:STOR'ABCD.AA.C5879.ABC123.123ABC'相反,您的ftp代码字符串ftpfullpath=@"ftp://abc.wyx.state.aa.bb//'ABCD。AA.C5879.ABC123.123ABC'/示例文件'";结果是:STOR/'ABCD.AA.C5879。ABC123.123ABC'/examplefile'它看起来不适合主机。我的C#代码的会话日志记录:USER用户331用户PASS密码230登录OPTSutf8on200UTF8模式启用PWD257“/”是当前目录。TYPEA200类型设置为APASV227进入被动模式(zzz,zzz,zzz,zzz,193,162)STOR'ABCD.AA.C5879.ABC123.123ABC'150已接受连接226传输成功来自我的ftp脚本的会话日志:USER用户331PasswordrequiredforuserPASSpassword230LoggedonPORTzzz,zzz,zzz,zzz,193,186200端口命令成功STOR'ABCD.AA.C5879.ABC123.123ABC'150打开文件传输的数据通道。226TransferOKQUIT221Goodbye我已经针对FileZillaFTP服务器进行了测试,显然FTP服务器响应在大型机FTP上会有所不同。但是来自客户端的FTP命令应该是相同的。以上就是C#学习教程:UsingC#toFTPfilestomainframe,包括数据集-ConvertingFTPscriptstoFtpWebRequestcodes分享所有内容,如果对大家有用,需要了解更多C#学习教程,希望请注意——本文摘自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
