AutoProxy Cache
Die WinHttpGetProxyForUrl-Funktion führt eine automatische Proxysuche auf Anforderungsbasis 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 Only One Proxy Server is Currently Supported (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, eine neue Autoproxy-URL und ein Skript zu finden und die Ergebnisse zwischenzuspeichern. Pro Sitzung sollte nur ein Benutzer zugelassen werden, damit 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, sind die zwischengespeicherte Autoproxy-URL und das Skript für den gesamten Computer verfügbar. Wenn jedoch der Out-of-Process-Dienst verwendet wird und das Flag fAutoLogonIfChallenged in der pAutoProxyOptions-Struktur true ist, werden die URL und das Skript des automatischen Proxys nicht zwischengespeichert. Daher führt der Aufruf von WinHttpGetProxyForUrl mit dem Member fAutoLogonIfChallenged, der auf TRUE festgelegt ist, zu zusätzlichen Mehraufwandvorgä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
- Rufen Sie WinHttpGetProxyForUrl auf, wobei der fAutoLogonIfChallenged-Parameter auf FALSE festgelegt ist. Die AUTOPROXY-URL und das Skript werden für zukünftige Aufrufe von WinHttpGetProxyForUrl zwischengespeichert.
- Wenn Schritt 1 mit ERROR _ WINHTTP _ LOGIN _ FAILURE fehlschlägt, rufen Sie WinHttpGetProxyForUrl auf, wobei der Member fAutoLogonIfChallenged auf TRUE festgelegt ist.