Я использую .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. Тем не менее, я не могу найти ссылку на эту кэширование, а не знать ни о том, чтобы не выключить его или выключить его.
Я бы приветствовал инструкции по борьбе с кэш, предложениями для того, что еще может вызвать эти симптомы или другие предложенные диагностические шаги, которые могут быть полезны.