WPAD е включен. Защо адресът на прокси в WinHTTP е празен?
Четенето на прокси конфигурацията на Windows и определянето на прокси за дадена дестинация са отделни операции. Идентичността на услугата добавя още една граница.
Автоматичното откриване на прокси може да е включено, докато ръчно зададеният низ за прокси е празен. WinHttpGetIEProxyConfigForCurrentUser() връща полета на конфигурацията, а не крайна точка за всяка дестинация.
| Поле | Значение |
|---|---|
| Ръчно прокси | Изрично конфигурирана стойност |
| URL за автоматична конфигурация | Местоположение на PAC скрипта |
| Флаг за автоматично откриване | Дали откриването е включено |
Структурата е изход. Задаването на нейния член за автоматично откриване преди извикване на функцията не включва откриването в Windows. Използвайте върнатите полета, за да построите отделна заявка за автоматично прокси с документираните флагове.
Първо определете, после приложете
API като WinHttpGetProxyForUrl() оценява действителния URL на дестинацията. Подайте този URL, а не URL за изтегляне на PAC, и приложете резултата от определянето към съответната WinHTTP заявка.
Директен резултат е валиден. Грешките при изтегляне на скрипта, оценяването му и свързването с прокси възникват на отделни стъпки. Проверявайте кодовете за неуспех и следвайте правилата за собственост върху върнатите низове.
Чия конфигурация?
“CurrentUser” означава контекста на извикващия. Услуга без подходящо имперсониране може да прочете настройките на своя служебен акаунт вместо тези на потребителя на работния плот.
Изберете съзнателно дали услугата използва управлявани настройки или следва конфигурацията на оторизиран потребител, включително поведението, когато няма интерактивен потребител. Обработката на токени и почистването на ресурси трябва да следват поддържаните API за идентичност.
За диагностика дръжте заедно извикващия акаунт, полетата на конфигурацията, дестинацията, резултата от определянето и първата грешка при свързване. Така се вижда кой етап е произвел празната стойност или неуспешния маршрут.