2010-10-02 15 views
5

Tenemos un sitio web ASP.NET que llama a un servicio web. Si la suplantación no está activada en el sitio web de ASP.NET, la llamada al servicio web es lenta: con WireShark vemos que está realizando consultas de WPAD.Consultas WPAD llamando al servicio web desde ASP.NET

Si la suplantación está activada y se está haciendo pasar por un usuario administrador, la llamada al servicio web es rápida, utilizando WireShark nosotros que NO está realizando consultas WPAD.

¿Alguien ha visto esto antes? ¿Cómo evitamos que NetworkService, que por defecto es lo que usa el sitio web ASP.NET, no haga consultas de WPAD?

¿Por qué suplantar a un usuario administrador no causa consultas de WPAD?

Esta es la entrada que vemos en WireShark:

NBNS Nombre de consulta NB WPAD < 00>

Respuesta

4

que tenía el mismo problema.

WPAD significa Web Proxy Auto Discovery.

Los detalles sobre el protocolo se pueden encontrar en Wikipedia.

Cuando selecciona "Detectar configuraciones automáticamente" en Internet Explorer-> Herramientas-> Opciones de Internet-> Conexiones-> Configuración de LAN, la máquina siempre usará el protocolo WPAD para consultar la red en busca de un proxy de detección automática antes de haciendo cualquier conexión web.

Aunque la configuración está en IE, es válida para toda la máquina y, por lo tanto, para cualquier cliente que intente conectarse a un servicio web desde esa máquina. También es la configuración predeterminada en IE.

Con WPAD activado, al hacer cualquier conexión web, el equipo del cliente consultará sus servidores DNS y WINS para encontrar un auto-proxy y también hará una secuencia de emisiones que piden un auto-proxy.

La conexión no se ejecutará hasta que se reciba una respuesta o transcurra algún tiempo de espera (por lo que puedo decir que el tiempo de espera es arbitrario, quizás alguien inteligente de WPAD podría dar una respuesta).

Los mensajes "NBNS Name Query NB WPAD" que ve en Wireshark son el cliente que consulta el servidor WINS para un auto-proxy. Si no ve una respuesta del servidor a la que se envían esos paquetes, entonces hay un problema con la configuración de la red. El servidor debe responder que no hay auto-proxy o con los detalles del servidor proxy automático.

El problema que tuvimos es que los servidores DNS de Windows Server 2008 están configurados de forma predeterminada para ignorar las solicitudes WPAD (es decir, no responden en absoluto), y esto es lo que estábamos ejecutando como nuestro servidor DNS/WINS. No teníamos un proxy automático ejecutándose, por lo que el servidor DNS de Windows Server 2008 debería haber respondido "no". Como no fue así, nuestro cliente consultaría en vano hasta 30 segundos antes de darse por vencido y hacer la conexión inicial.

La buena noticia es que hay tres soluciones a este problema:

1) Desactivar "Detectar la configuración automáticamente" en el IE en cualquier máquina que se utilizan como un cliente para su servicio web

2) Editar el machine.config o app.config de la aplicación cliente del servicio web para eludir la configuración del proxy local.Puede encontrar información sobre cómo hacer esto aquí:

http://support.microsoft.com/kb/968699

3) Asegúrese de que el servidor DNS de la red está configurada para responder adecuadamente a las solicitudes WPAD.

Por último, aquí hay un enlace a algo de información sobre WPAD que me pareció muy útil durante la depuración este problema a mí mismo:

http://www.isaserver.org/articles/ISA2004_ClientAutoConfig.html

Espero que esto ayude!

+1

Muchas gracias por responder tan a fondo. ¡Acabas de salvar mi semana! – Sune

Cuestiones relacionadas