AutoProxy-Cache
Die WinHttpGetProxyForUrl--Funktion führt die Autoproxysuche auf Anforderungsbasis für die angegebene URL aus. 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 Abschnitt in AutoProxy-Problemen 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 AutoProxy-Skript von dieser Website herunter. WinHttp verwendet das AutoProxy-Skript, um die Proxyserver zu finden. Sowohl die Autoproxy-URL als auch das AutoProxy-Skript 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 AutoProxy-Skript und die URL zwischengespeichert, bis sich die ip-Adresse ändert, die dem Computer zugeordnet ist. Wenn während eines Aufrufs von WinHttpGetProxyForUrleine neue IP-Adresse erkannt wird, versucht der Aufruf, eine neue Autoproxy-URL und ein neues Skript zu suchen und die Ergebnisse zwischenzuspeichern. Pro Sitzung sollte nur ein Benutzer zulässig sein, sodass die zwischengespeicherten Daten nicht für andere Benutzer auf dem Computer freigegeben werden. Weitere Informationen finden Sie unter WinHTTP Sessions Overview.
Wenn der Out-of-Process-Dienst aktiv ist, wenn WinHttpGetProxyForUrl aufgerufen wird, sind die zwischengespeicherten Autoproxy-URL und das Skript für den gesamten Computer verfügbar. Wenn der Out-of-Process-Dienst verwendet wird und die fAutoLogonIfChallenged- Flag in der pAutoProxyOptions- Struktur erfüllt ist, werden die AutoProxy-URL und das Skript nicht zwischengespeichert. Daher führt das Aufrufen WinHttpGetProxyForUrl- mit dem fAutoLogonIfChallenged Member auf TRUE zu zusätzlichen Overheadvorgängen, die sich auf die Leistung auswirken können. Die folgenden Schritte können verwendet werden, um die Leistung zu verbessern.
Zur Verbesserung der Leistung
- Rufen Sie WinHttpGetProxyForUrl- auf, wobei der Parameter fAutoLogonIfChallenged auf falsefestgelegt ist. Die Autoproxy-URL und das Skript werden für zukünftige Aufrufe von WinHttpGetProxyForUrlzwischengespeichert.
- Wenn Schritt 1 fehlschlägt, rufen Sie mit ERROR_WINHTTP_LOGIN_FAILUREWinHttpGetProxyForUrl mit dem fAutoLogonIfChallenged Member auf TRUEfestgelegt.