Поделиться через


Обнаружение без файла автоконфигурирования

Если файл автоматической настройки прокси-сервера не был развернут в локальной сети, WinHttpGetProxyForUrl не удается найти прокси-сервер. Если WinHttpGetProxyForUrl завершается ошибкой, существует несколько возможных резервных стратегий для получения жизнеспособной конфигурации прокси-сервера в зависимости от среды выполнения. К ним относятся запрос на настройку прокси-сервера через пользовательский интерфейс, требующий, чтобы кто-то сохранял конфигурацию прокси-сервера в реестре с помощью служебной программы WinHTTP "ProxyCfg.exe" или использования WinHttpGetIEProxyConfigForCurrentUser, чтобы проверить, указан ли прокси-сервер в параметрах Internet Explorer.

Возможно, нет файла автоматической настройки прокси-сервера, так как клиент имеет прямое подключение к Интернету, например через ISP, и не нужен прокси-сервер.

С другой стороны, может потребоваться прокси-сервер, но локальная сеть может не поддерживать WPAD. В этом случае конфигурация прокси-сервера должна быть получена от пользователя или найдена где-то на клиентском компьютере.

Приложение на основе WinHTTP, работающее в среде сервера среднего уровня, например ПРИЛОЖЕНИЕ COM+ или ASP, должно полагаться на настройку прокси-сервера по умолчанию в реестре с помощью служебной программы "ProxyCfg.exe". Затем эти сведения о конфигурации по умолчанию можно получить с помощью функции WinHttpGetDefaultProxyConfigur ation или просто указав флаг WINHTTP_ACCESS_TYPE_PRECONFIG в вызове WinHttpOpen.

С другой стороны, приложение WinHTTP, работающее на клиентском компьютере, может попытаться проверить параметры прокси-сервера Internet Explorer. WinHttpGetIEProxyConfigForCurrentUser заполняет структуру, предоставляемую вызывающим WINHTTP_CURRENT_USER_IE_PROXY_CONFIG, с параметрами прокси-сервера Internet Explorer текущего пользователя для текущего активного подключения (подключение, VPN или локальная сеть). Эта конфигурация может указывать, что используется автоматическое обнаружение или указать URL-адрес для файла автоматической конфигурации прокси-сервера или указать фактический прокси-сервер для использования или указать сочетание трех. Если эти сведения содержат URL-адрес PAC или прокси-сервер, приложение WinHTTP может попытаться использовать их.

Пример, использующий функции WinHttpGetProxyForUrl и WinHttpGetIEProxyConfigForCurrentUser можно найти в примерах WinHTTP пакета sdk для платформы.