Problema con System.Net.Dns.GetHostEntry (dnsServer) en .NET 4.0
He estado usando el siguiente código durante meses (sin problemas) en un entorno .NET 2.0 / 3.5:
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);
Aquí, el servidor está codificado en una dirección IP, pero en mi aplicación podría ser algo como "server.test.com".
Al convertir mi proyecto a .NET 4.0, este código dejó de funcionar al pasar directamente una dirección IP (aún funciona con un nombre de host). Se bloquea con esta excepción:
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)
Como todo lo que necesito es el IPEndPoint resultante, puedo solucionar el problema utilizando IPAddress.Parse para generar el objeto IPAddress, pero quiero saber si alguno de ustedes sabe por qué este comportamiento cambió en .NET 4.0. (Si no podemos resolver el nombre de host de la dirección IP, ahora se lanza una excepción).