Como depurar o PAC (configuração automática de proxy) no Windows 8.1 (IE11 e UI moderna)?

12

Em sistemas mais antigos, como o Windows 7 + IE10, chamar "alert ()" no arquivo PAC faria com que uma caixa de diálogo fosse exibida. No entanto, no Windows 8.1, nenhuma caixa de diálogo é exibida, mesmo que o IE11 pareça estar usando o PAC.

Minha situação atual é que o IE11 pode usar os proxies (SOCKS) (retornados pelo PAC) muito bem, mas os aplicativos modernos da interface do usuário estão completamente desconectados da Internet. Parece que o IE11 e a UI moderna tratam a configuração do PAC de maneira diferente, mas não consigo encontrar uma maneira de depurá-la.

Em resumo, minhas perguntas são

  1. Como depurar o PAC com o IE11 no Windows 8.1?
  2. Como depurar o PAC com a UI moderna no Windows 8.1?
Jackie Ku
fonte
1
Corri para o mesmo problema - nem Firefox, Chrome ou IE parecem estar recebendo chamadas de alerta. Eu usei utmtools.com/PacMagic e code.google.com/p/pacparser para fins de 'teste'.
Oviava 18/03/2015
+1 para PacMagic. O gerador pode usar alguns ajustes, mas o recurso de teste funciona muito bem. E é apenas um arquivo exe independente.
Neil

Respostas:

3

Alterações no arquivo PAC IE11

Houve alterações feitas pela Microsoft na maneira como o IE11 lida com arquivos PAC locais. Você pode ler sobre eles aqui ou veja abaixo para obter informações rápidas.

Observe também que essas alert()instruções não funcionam mais no Windows 8.


Com o IE11, o uso de um arquivo PAC através do protocolo de arquivo não é mais possível, a menos que você adicione a seguinte chave do Registro:

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

Arquivo PAC através do exemplo de protocolo de arquivo

Nota: as instruções de alerta não aparecerão mais ao usar o Windows 8 ou superior!


Arquivo PAC de depuração com AUTOPROX ( Link para download )

Às vezes, você precisa apenas testar seu arquivo PAC, se a rota esperada for retornada, embora você não tenha acesso ao site em questão. Para esses testes, você pode usar a ferramenta de utilitário de linha de comando (anexada) autoprox.exe, criada por Pierre-Louis Coll.

Ao iniciá-lo em um CMDparâmetro sem adicional, o uso é exibido:

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

Aqui está a saída com a nossa amostra:

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;

Quando você deseja ver quais funções relacionadas ao DNS foram chamadas, você pode usar o parâmetro "-h" além disso: Aqui a saída, quando isso é usado:

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;

Tratamento de erros no autoprox.exe:

  1. Quando você especifica um arquivo PAC não existente (por exemplo, erro de digitação na linha de comando), o resultado do autoprox.exe será:

    ERROR: InternetInitializeAutoProxyDll failed with error number 0x6 6.

  2. Quando o arquivo Pac contém erros de sintaxe, você geralmente recebe a seguinte mensagem exibida:

    ERROR: InternetGetProxyInfo failed with error number 0x3eb 1003.

Após concluir o teste local, o arquivo PAC deve ser copiado para o servidor da web em que será acessado através do protocolo http.

bentek
fonte