共用方式為


AutoProxy 快取

WinHttpGetProxyForUrl 函式會針對指定的 URL,根據每個要求執行 autoproxy 查閱。 如果傳回多個 Proxy,用戶端應用程式應該先測試每個 Proxy 再傳送要求(如需詳細資訊,請參閱 WinHTTP 中的 AutoProxy 問題一節中目前僅支援 一個 Proxy 伺服器 一節。 本主題中的資訊適用於用戶端指定自動 Proxy 探索時 WinHttpGetProxyForUrl 的呼叫。

WinHttpGetProxyForUrl 選擇性地找出 autoproxy URL,並從該網站下載 autoproxy 腳本。 WinHttp 會使用 autoproxy 腳本來找出 Proxy 伺服器。 系統會針對指定的會話快取 autoproxy URL 和 autoproxy 腳本。 每個會話只會快取一個自動Proxy URL 和腳本。 一般而言,autoproxy 腳本和 URL 會快取到與計算機相關聯的 IP 位址變更為止。 如果在呼叫 winHttpGetProxyForUrl 期間偵測到新的 IP 位址,呼叫會嘗試尋找新的自動回應 URL 並編寫腳本並快取結果。 每個會話只能允許一個使用者,如此一來,快取的數據就不會與計算機上的其他用戶共用。 如需詳細資訊,請參閱 WinHTTP 工作階段概觀

如果在呼叫 winHttpGetProxyForUrl進程外服務為作用中,則整個電腦都可以使用快取的 autoproxy URL 和腳本。 不過,如果使用跨進程服務,且 fAutoLogonIfChallenged 旗標 pAutoProxyOptions 結構為 true,則不會快取 autoproxy URL 和腳本。 因此,呼叫 WinHttpGetProxyForUrl,並將 fAutoLogonIfChallenged 成員設定為 TRUE 會導致可能會影響效能的額外額外負荷作業。 下列步驟可用來改善效能。

改善效能

  1. 呼叫 winHttpGetProxyForUrl,並將 fAutoLogonIfChallenged 參數設定為 false。 系統會快取 autoproxy URL 和腳本,以便日後呼叫 winHttpGetProxyForUrl
  2. 如果步驟 1 失敗,使用 ERROR_WINHTTP_LOGIN_FAILURE,則 呼叫 winHttpGetProxyForUrl,並將 fAutoLogonIfChallenged 成員設定為 true