¿Cómo puedo depurar PAC (proxy auto config) en Windows 8.1 (IE11 y Modern UI)?

12

En sistemas más antiguos como Windows 7 + IE10, llamar a "alert ()" en el archivo PAC provocaría un cuadro de diálogo. Sin embargo, con Windows 8.1 no se muestran cuadros de diálogo incluso si IE11 parece estar haciendo uso del PAC.

Mi situación actual es que IE11 puede usar los proxies (SOCKS) (devueltos por el PAC) muy bien, pero las aplicaciones de UI modernas están completamente desconectadas de Internet. Parece que IE11 y Modern UI tratan la configuración de PAC de manera diferente, pero no puedo encontrar una manera de depurarla.

En resumen, mis preguntas son

  1. ¿Cómo puedo depurar el PAC con IE11 en Windows 8.1?
  2. ¿Cómo puedo depurar el PAC con Modern UI en Windows 8.1?
Jackie Ku
fuente
1
Me he encontrado con el mismo problema: ni Firefox, Chrome ni IE parecen estar recogiendo llamadas de alerta. He usado utmtools.com/PacMagic y code.google.com/p/pacparser con fines de "prueba".
oviava
+1 para PacMagic. El generador podría usar algunos ajustes, pero la función de prueba funciona muy bien. Y es solo un archivo exe independiente.
Neil

Respuestas:

3

Cambios en el archivo PAC de IE11

Microsoft realizó cambios en la forma en que IE11 maneja los archivos PAC locales. Puede leer sobre ellos aquí o ver más abajo para obtener información rápida.

También tenga en cuenta que las alert()declaraciones ya no funcionan a partir de Windows 8.


Con IE11, el uso de un archivo PAC a través del protocolo de archivo ya no es posible, a menos que agregue la siguiente clave de registro:

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

Ejemplo de archivo PAC a través de protocolo de archivo

Nota: ¡ las declaraciones de alerta ya no aparecerán al usar Windows 8 o superior!


DEBUG Archivo PAC con AUTOPROX ( Enlace de descarga )

A veces solo necesita probar su archivo PAC, si se devuelve la ruta esperada, aunque no tiene acceso al sitio web en cuestión. Para tales pruebas, puede utilizar la herramienta de utilidad de línea de comandos (adjunta) autoprox.exe, creada por Pierre-Louis Coll.

Al iniciarlo en un CMDsin parámetro adicional, se muestra el uso:

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

Aquí está la salida con nuestra muestra:

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;

Cuando desee ver qué funciones relacionadas con DNS se han llamado, puede usar el parámetro "-h" además: Aquí la salida, cuando se usa esto:

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;

Manejo de errores en autoprox.exe:

  1. Cuando especifica un archivo PAC no existente (por ejemplo, un error tipográfico en la línea de comandos), el resultado de autoprox.exe será:

    ERROR: InternetInitializeAutoProxyDll failed with error number 0x6 6.

  2. Cuando el archivo Pac contiene errores de sintaxis, generalmente aparece el siguiente mensaje:

    ERROR: InternetGetProxyInfo failed with error number 0x3eb 1003.

Después de terminar la prueba local, el archivo PAC debe copiarse al servidor web donde se accederá a través del protocolo http.

bentek
fuente