Я использовал следующий код в течение многих месяцев (без проблемы) в.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);
Здесь, сервер является hardcoded к IP-адресу, но в моем приложении это могло потенциально быть что-то как "server.test.com".
При преобразовании моего проекта в.NET 4.0, этот код прекратил работать, когда непосредственно передающий IP-адрес (все еще работает с именем хоста). Это отказывает за этим исключением:
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)
Поскольку все, в чем я нуждаюсь, является получающимся IPEndPoint, я могу работать вокруг проблемы при помощи IPAddress. Синтаксический анализ для генерации объекта IPAddress но я хочу знать, знает ли какой-либо из Вас почему это поведение, измененное в.NET 4.0? (Если мы не можем разрешить имя хоста от IP-адреса, исключение теперь выдается).