Спросите политику по умолчанию о точном URL, который не работает:

var destination = new Uri("https://example.com/");
var proxy = HttpClient.DefaultProxy;
Console.WriteLine(proxy.IsBypassed(destination));
Console.WriteLine(proxy.GetProxy(destination));

Используйте пространства имен System и System.Net.Http. Держите приватные сведения о возвращенной конечной точке вне публичных журналов.

НаблюдениеЗначение
IsBypassed(destination)Выбирает ли эта политика прямое маршрутизирование для этого URL.
GetProxy(destination)Результат политики; WebProxy может вернуть исходный адрес назначения при обходе.
Реальный запрос через сбойный клиентДоказательство того, был ли выбранный маршрут пригоден.
Отчет об адресе источника со стороны назначенияВыход, наблюдавшийся для этого запроса.

HttpClient.DefaultProxy обеспечивает маршрутизацию по умолчанию, когда у обработчика нет явной конфигурации прокси, и его инициализация зависит от платформы. Другой назначенный прокси или отключенное использование прокси может выбрать иначе. Проверяйте фактический обработчик, а не только новый диагностический клиент.

Служба может работать и в другой пользовательской среде. Держите выбранный прокси, решение об обходе и результат запроса отдельно при сравнении с интерактивным приложением. Этот код не открывает соединение с назначением и не измеряет исходящий IP; при необходимости собирайте такие доказательства через тот же клиент и маршрут.

Похожие статьи