Sono stato con il seguente codice per mesi (senza problemi) in un ambiente .NET 2.0/3.5:problema con System.Net.Dns.GetHostEntry (dnsserver) su .NET 4.0
string server="192.168.1.3";
IPHostEntry ipe = System.Net.Dns.GetHostEntry(server);
IPAddress ipa = ipe.AddressList[0];
IPEndPoint ipep = new IPEndPoint(ipa, (int)UdpServices.Domain);
Qui, il server è hardcoded a un indirizzo IP, ma nella mia applicazione potrebbe essere qualcosa come "server.test.com".
Durante la conversione del progetto in .NET 4.0, questo codice ha smesso di funzionare quando si passa direttamente un indirizzo IP (funziona ancora con un nome host). Si blocca con questa eccezione:
System.Net.Sockets.SocketException was unhandled
Message=The requested name is valid, but no data of the requested type was found
Source=System
ErrorCode=11004
NativeErrorCode=11004
StackTrace:
at System.Net.Dns.InternalGetHostByAddress(IPAddress address, Boolean includeIPv6)
at System.Net.Dns.GetHostEntry(String hostNameOrAddress)
Perché tutto quello che serve è la risultante IPEndPoint, posso aggirare il problema utilizzando IPAddress.Parse per generare l'oggetto IPAddress, ma voglio sapere se qualcuno di voi sa perché questo comportamento è cambiato in .NET 4.0? (Se non siamo in grado di risolvere il nome host dall'indirizzo IP, viene lanciata un'eccezione).
il link è rotto –
Questo collegamento funziona: [https://connect.microsoft.com/VisualStudio/feedback/details/561083/dns-gethostentry-behaves-differently-in-net-4-0-than-previous-versions](https://connect.microsoft.com/VisualStudio/ feedback/dettagli/561083/dns-gethostentry-si comporta-differentemente-in-net-4-0-rispetto-versioni precedenti) – empty
Questo link non funziona neanche ora. – bgmCoder