2012-12-18 6 views
5

Próbuję połączyć się z serwerem FTP za pomocą SharpSSH jak poniżej:SFTP łączność DNS problem - System.Net.Sockets.SocketException: Żądana nazwa jest ważna, ale nie dane żądanego typu stwierdzono

Sftp Connection = new Sftp(ftpAddress, FTPLogin, FTPPasword); 
Connection.Connect(); 

co skutkuje JSchException:

System.Net.Sockets.SocketException: The requested name is valid, but no data of the requested type was found 
at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6) 
at System.Net.Dns.GetHostByName(String hostName) 
at Tamir.SharpSsh.java.net.Socket..ctor(String host, Int32 port) 
at Tamir.SharpSsh.jsch.Util.createSocket(String host, Int32 port, Int32 timeout) 

Po jakimś poszukiwaniu próbowałem ten kod:

IPHostEntry ip = Dns.GetHostEntry(ftpAddress); 

I mam SocketException: {Brak takiego hosta jest znany}

Teraz trochę tła - jestem w stanie połączyć się z Filezilla do ftpAdress za pośrednictwem nazwy hosta i adresu IP (zarówno zewnętrznego, jak i wewnętrznego). Kiedy> ping ftp.mydomain.com
otrzymuję> 10.5.165.15
Ale> ping -a 10.5.165.15
otrzymuję>ftpnew.mydomain.com

Jeśli I mam rację, jestem odrzucany z powodu problemu DNS <> revDNS.

Moje pytanie brzmi - co mogę zrobić, aby rzeczywiście połączyć się z moim połączeniem sftp.

+0

Mam teraz ten sam problem i próbowałem użyć twojej odpowiedzi poniżej, ale otrzymałem ten sam błąd. Czy możesz mi pomóc? Nie rozumiem, dlaczego mam błąd, nawet jeśli moje poświadczenia są poprawne. –

Odpowiedz

4

Rozwiązanie zostało znalezione poprzez sprawdzenie wszystkich możliwości i tak zarządziłem ustanowieniem połączenia: Najpierw mój ftpAddress został ustawiony na zewnętrzny/wewnętrzny adres IP.

IPHostEntry ip = Dns.GetHostByName(ftpAddress); 
Sftp Connection = new Sftp(ip.ToString(),FTPLogin,FTPPassword); 
Connection.Connect() 

Wydaje mój błąd nie był o DNS <> revDNS ale raczej z powodu dodatkowych znaków „\” w adres hosta starałem się połączyć.

2

Miałem do czynienia z tym samym problemem, teraz znalazłem rozwiązanie dla tego. Użyj następującego adresu ftpAddress (URL): sftp.abcdefg.com z 22 portami nr. a reszta będzie taka sama. Nie używaj żadnego ukośnika "/" i ukośnika "\" na końcu lub na początku adresu URL. Wystąpił ten sam problem z tym adresem URL = sftp.abcdefg.com/

Powiązane problemy