Как я могу очистить System.net Client DNS Cache?

Я использую .NET WebRequest при изменении файла Hosts. Я наблюдаю за тем, что System.net не почитает эти изменения - как я могу сделать это сделать это?

У меня есть ряд серверов, сбалансированных за единое имя хоста, давайте скажем, вы можете сказать «example.com». Я хочу нацелить несколько из них индивидуально, поэтому моя программа будет труднокомить IP-адрес по специальному машине в файле Hosts, прежде чем отправлять запрос на example.com :

163.56.0.34  example.com

для первого сервера и первого запроса, это работает нормально. Тогда моя программа снова меняет файл хостов:

163.56.0.48  example.com

и я создаю новый httpwebrequest. Когда я отправляю это, я могу наблюдать в Netmon, что он идет к первому IP-адресу (163.56.0.34) вместо ожидаемого второго.

Используя точки останова и отладки следов, я проверил, что правильное значение делает записано в файл хостов каждый раз. Когда я пытаюсь получить доступ к example.com из браузера или другой программы, он выполняет файл Hosts и перейти на второй IP-адрес.

Использование Netmon Я проверил, что запросы идут непосредственно на IP-адрес; Нет HTTP прокси.

Поскольку все остальное учитывает файл измененных хостов, я настоятельно подозреваю, что инфраструктура System.net кэшировала ассоциацию Host-IP DNS для Example.com. Тем не менее, я не могу найти ссылку на эту кэширование, а не знать ни о том, чтобы не выключить его или выключить его.

Я бы приветствовал инструкции по борьбе с кэш, предложениями для того, что еще может вызвать эти симптомы или другие предложенные диагностические шаги, которые могут быть полезны.

31
задан svick 1 September 2011 в 23:05
поделиться