WPAD включён. Почему адрес прокси в WinHTTP пуст?
Чтение конфигурации прокси Windows и определение прокси для назначения — разные операции. Идентичность службы добавляет ещё одну границу.
Автоопределение прокси может быть включено, хотя строка прокси, заданная вручную, пуста. WinHttpGetIEProxyConfigForCurrentUser() возвращает поля конфигурации, а не конечную точку для каждого назначения.
| Поле | Значение |
|---|---|
| Прокси вручную | Значение, заданное явно |
| URL автоматической конфигурации | Расположение скрипта PAC |
| Флаг автоопределения | Включено ли обнаружение |
Структура — это выходные данные. Установка её члена автоопределения перед вызовом функции не включает обнаружение в Windows. Используйте возвращённые поля, чтобы построить отдельный запрос автоматического прокси с документированными флагами.
Сначала определите, затем примените
API, например WinHttpGetProxyForUrl(), оценивает фактический URL назначения. Укажите этот URL, а не URL загрузки PAC, и примените результат определения к соответствующему запросу WinHTTP.
Прямой результат допустим. Ошибки загрузки скрипта, его вычисления и подключения к прокси возникают на отдельных этапах. Проверяйте коды сбоев и соблюдайте правила владения возвращёнными строками.
Чья конфигурация?
«CurrentUser» означает контекст вызывающего. Служба без надлежащего олицетворения может читать параметры своей служебной учётной записи вместо параметров пользователя рабочего стола.
Осознанно выберите, использует ли служба управляемые параметры или следует конфигурации авторизованного пользователя, включая поведение при отсутствии интерактивного пользователя. Обработка токенов и очистка ресурсов должны соответствовать поддерживаемым API идентичности.
Для диагностики держите вместе учётную запись вызывающего, поля конфигурации, назначение, результат определения и первую ошибку подключения. Это показывает, на каком этапе возникло пустое значение или неудачный маршрут.