Share via


AutoProxy-Cache

Die WinHttpGetProxyForUrl-Funktion führt eine Autoproxysuche pro Anforderung für die angegebene URL durch. Wenn mehrere Proxys zurückgegeben werden, sollten Clientanwendungen jeden Proxy vor dem Senden der Anforderung testen (weitere Informationen finden Sie im Abschnitt Nur ein Proxyserver wird derzeit unterstützt unter AutoProxy-Probleme in WinHTTP). Die Informationen in diesem Thema gelten für Aufrufe von WinHttpGetProxyForUrl , wenn der Client die automatische Proxyermittlung angibt.

WinHttpGetProxyForUrl sucht optional die Autoproxy-URL und lädt das Autoproxyskript von dieser Website herunter. WinHttp verwendet das Autoproxyskript, um die Proxyserver zu suchen. Sowohl die Autoproxy-URL als auch das Autoproxyskript werden für die angegebene Sitzung zwischengespeichert. Für jede Sitzung werden nur eine Autoproxy-URL und ein Skript zwischengespeichert. In der Regel werden das Autoproxyskript und die URL zwischengespeichert, bis sich die dem Computer zugeordnete IP-Adresse ändert. Wenn während eines Aufrufs von WinHttpGetProxyForUrl eine neue IP-Adresse erkannt wird, versucht der Aufruf, nach einer neuen Autoproxy-URL und einem Skript zu suchen und die Ergebnisse zwischenzuspeichern. Pro Sitzung sollte nur ein Benutzer zugelassen werden, sodass die zwischengespeicherten Daten nicht für andere Benutzer auf dem Computer freigegeben werden. Weitere Informationen finden Sie unter Übersicht über WinHTTP-Sitzungen.

Wenn der Out-of-Process-Dienst aktiv ist, wenn WinHttpGetProxyForUrl aufgerufen wird, stehen die zwischengespeicherte Autoproxy-URL und das Skript für den gesamten Computer zur Verfügung. Wenn jedoch der Out-of-Process-Dienst verwendet wird und das fAutoLogonIfChallenged-Flag in der pAutoProxyOptions-Struktur true ist, werden die Autoproxy-URL und das Skript nicht zwischengespeichert. Daher führt das Aufrufen von WinHttpGetProxyForUrl mit dem auf TRUE festgelegten fAutoLogonIfChallenged-Member zu zusätzlichen Mehraufwandsvorgängen, die sich auf die Leistung auswirken können. Die folgenden Schritte können verwendet werden, um die Leistung zu verbessern.

So verbessern Sie die Leistung

  1. Rufen Sie WinHttpGetProxyForUrl auf, wobei der Parameter fAutoLogonIfChallenged auf false festgelegt ist. Die Autoproxy-URL und das Skript werden für zukünftige Aufrufe von WinHttpGetProxyForUrl zwischengespeichert.
  2. Wenn Schritt 1 fehlschlägt, rufen Sie mit ERROR_WINHTTP_LOGIN_FAILUREWinHttpGetProxyForUrl auf, wobei das fAutoLogonIfChallenged-Element auf TRUE festgelegt ist.