Я использую .NET WebRequest при изменении файла HOSTS.Я наблюдаю, что System.Net не учитывает эти изменения - как я могу это сделать?
У меня есть несколько серверов с балансировкой нагрузки за одно имя хоста, скажем, "example.com",Я хочу настроить таргетинг на несколько из них по отдельности, поэтому моя программа жестко закодирует машинный IP-адрес в моем файле HOSTS перед отправкой запроса на example.com:
163.56.0.34 example.com
Для первого сервера и первогопросьба, это работает нормально.Затем моя программа снова изменяет файл HOSTS:
163.56.0.48 example.com
И я создаю новый запрос HttpWebRequest.Когда я отправляю это сообщение, я могу наблюдать в NETMON, что он идет по первому IP-адресу (163.56.0.34) вместо ожидаемого второго.
Используя точки останова и трассировки отладки, я убедился, чтоправильное значение записывается в файл HOSTS каждый раз.Когда я пытаюсь получить доступ к example.com из браузера или другой программы, он учитывает файл HOSTS и переходит ко второму IP-адресу.
Используя NETMON, я убедился, что запросы направляются непосредственно на IP-адреспоказано;HTTP-прокси не существует.
Поскольку все остальное учитывает измененный файл HOSTS, я сильно подозреваю, что инфраструктура System.Net кэшировала ассоциацию DNS хост-IP для example.com.Однако я не могу найти ссылку на это кеширование и не знаю, как его очистить или отключить.
Я хотел бы получить инструкции по работе с кешем, предложения о том, что еще может вызывать эти симптомы,или другие предложенные диагностические шаги, которые могут быть полезны.