web-dev-qa-db-ja.com

Windows 8.1(IE11およびモダンUI)でPAC(プロキシ自動構成)をデバッグするにはどうすればよいですか?

Windows 7 + IE10などの古いシステムでは、PACファイルで「alert()」を呼び出すとダイアログが表示されます。ただし、Windows 8.1では、IE11がPACを使用しているように見えても、ダイアログは表示されません。

私の現在の状況は、IE11が(PACによって返される)(SOCKS)プロキシを正常に使用できることですが、モダンUIアプリはインターネットから完全に切断されています。 IE11とモダンUIではPAC設定の扱いが異なるようですが、デバッグする方法が見つかりません。

要約すると、私の質問は

  1. Windows 8.1でIE11を使用してPACをデバッグするにはどうすればよいですか?
  2. Windows 8.1でModern UIを使用してPACをデバッグするにはどうすればよいですか?
12
Jackie Ku

IE11 PACファイルの変更

IE11がローカルPACファイルを処理する方法に、Microsoftによって変更が加えられました。あなたはそれらについて読むことができます ここ またはいくつかの簡単な情報については以下を参照してください。

また、Windows 8以降、alert()ステートメントが機能しなくなったことにも注意してください


IE11では、次のレジストリキーを追加しない限り、ファイルプロトコルを介したPACファイルの使用は不可能です。

[HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings]
(DWORD)"EnableLegacyAutoProxyFeatures"=1

PAC-file through file-protocol example

注:Windows 8以降を使用している場合、アラート文は表示されなくなります!


AUTOPROXを使用したDEBUG PACファイルダウンロードリンク

問題のWebサイトにアクセスできないにもかかわらず、予想されるルートが返された場合、PACファイルをテストするだけでよい場合があります。このようなテストには、Pierre-Louis Collによって作成された(付属の)コマンドラインユーティリティツールautoprox.exeを使用できます。

追加のパラメーターなしでCMDで開始すると、使用法が表示されます。

C:\temp>autoprox
Version : 2.1.0.0
Written by [email protected]
Usage : AUTOPROX -s  (calling DetectAutoProxyUrl and saving wpad.dat file in temporary file)
Usage : AUTOPROX  [-h] url [Path to autoproxy file]
       -h: calls InternetInitializeAutoProxyDll with helper functions implemented in AUTOPROX
AUTOPROX url: calling DetectAutoProxyUrl and using WPAD.DAT logic to find the proxy for the url
AUTOPROX url path: using the autoproxy file from the path to find proxy for the url
Example: autoprox -s
Example: autoprox http://www.Microsoft.com
Example: autoprox -h http://www.Microsoft.com c:\inetpub\wwwroot\wpad.dat
Example: autoprox http://www.Microsoft.com http://proxy/wpad.dat

これがサンプルの出力です:

C:\temp>autoprox http://us.msn.com c:\temp\sample.pac
The Winsock 2.2 dll was found okay
url: http://us.msn.com
autoproxy file path is : c:\temp\sample.pac
Calling InternetInitializeAutoProxyDll with c:\temp\sample.pac
        Calling InternetGetProxyInfo with url http://us.msn.com and Host us.msn.com
        Proxy returned for url http://us.msn.com is:
PROXY myproxy:80;

どのDNS関連関数が呼び出されたかを確認したい場合は、パラメーター「-h」を追加で使用できます。これを使用した場合の出力:

C:\temp>autoprox -h http://us.msn.com c:\temp\sample.pac
The Winsock 2.2 dll was found okay
Will call InternetInitializeAutoProxyDll with helper functions
url: http://us.msn.com
autoproxy file path is : c:\temp\sample.pac
Calling InternetInitializeAutoProxyDll with c:\temp\sample.pac
        Calling InternetGetProxyInfo with url http://us.msn.com and Host us.msn.com
ResolveHostByName called with lpszHostName: us.msn.com
ResolveHostByName returning lpszIPAddress: 65.55.206.229
        Proxy returned for url http://us.msn.com is:
PROXY myproxy:80;

autoprox.exeでのエラー処理:

  1. 存在しないPACファイルを指定すると(コマンドラインのタイプミスなど)、autoprox.exeの結果は次のようになります。

    ERROR: InternetInitializeAutoProxyDll failed with error number 0x6 6.

  2. Pacファイルに構文エラーが含まれている場合、通常、次のメッセージが表示されます。

    ERROR: InternetGetProxyInfo failed with error number 0x3eb 1003.

ローカルテストが終了したら、PACファイルをWebサーバーにコピーし、http-protocolを介してアクセスします。

3
bentek