我是C#的新手,我正在尝试使用C#(从互联网获取一些代码)访问SFTP。我通过编写下面的代码尝试了这个。但我得到例外:
IPHostEntry hostInfo = Dns.GetHostByName(@"sftp://........");
// Get the IP address list that resolves to the host names contained in the
// Alias property.
IPAddress[] address = hostInfo.AddressList;
// Get the alias names of the addresses in the IP address list.
“捕获了SocketException:请求的名称有效,但未找到所请求类型的数据”
我发现了很多关于这一点,但没有理解。此外,我尝试使用Tamir.SharpSSH库连接SFTP,但获得相同的例外。
请建议一些解决方案。我在项目中需要这个。
由于
答案 0 :(得分:5)
我怀疑你需要改变:
IPHostEntry hostInfo = Dns.GetHostByName(@"sftp://server.address.com");
为:
IPHostEntry hostInfo = Dns.GetHostByName(@"server.address.com");
DNS不知道,也不关心您用来访问服务器的协议(sftp://
),它只关心服务器 name
注意:Microsoft认为Dns.GetHostByName
方法已过时,建议改为使用Dns.GetHostEntry
方法。