WinSCP .NET程序集:能否用FTP URL替代主机名参数?
WinSCP FTP连接:IP地址填入HostName的正确方式
完全可以使用IP地址作为HostName参数的值,但不需要包含ftp://前缀。WinSCP的HostName字段仅需填写主机名或纯IP地址,协议类型已经通过Protocol = Protocol.Ftp明确指定,带前缀会导致连接解析错误。
修改后的代码示例如下:
SessionOptions sessionOptions = new SessionOptions { Protocol = Protocol.Ftp, HostName = "xxx.xx.xx.xx", // 直接填写纯IP地址,去掉ftp://前缀 UserName = "user", Password = "mypassword", }; // Configure proxy sessionOptions.AddRawSettings("ProxyMethod", "3"); sessionOptions.AddRawSettings("ProxyHost", "proxy"); using (Session session = new Session()) { // Connect session.Open(sessionOptions); // Upload file string localFilePath = @"C:\path\file.txt"; string pathUpload = "/file.txt"; session.PutFiles(localFilePath, pathUpload).Check(); }
如果输入完整的ftp://xxx.xx.xx.xx,WinSCP会把整个字符串当作主机名解析,无法识别正确的IP地址,进而导致连接失败,务必只保留纯IP地址部分填入HostName。
内容的提问来源于stack exchange,提问作者Jeff
相关产品推荐
相关产品推荐

