Compartir a través de


Solución de problemas de otras aplicaciones WSDAPI

Las aplicaciones pueden llamar directamente a interfaces y funciones WSDAPI para realizar el intercambio de metadatos y detección de dispositivos. Los patrones de mensaje usados por estas aplicaciones varían.

El objetivo de esta guía de solución de problemas es ayudar a los desarrolladores de aplicaciones WSDAPI a implementar correctamente un proxy de dispositivo. Esta guía no está pensada para ayudar a solucionar todos los aspectos de WSDAPI. Si el proxy del dispositivo se ha creado correctamente y el cliente y el host pueden verse entre sí en la red, esta guía no puede solucionar los problemas de la aplicación. Para solucionar estos problemas de aplicación, siga las instrucciones de Habilitación del seguimiento de WSDAPI y póngase en contacto con el soporte técnico de Microsoft para obtener más ayuda.

Solución de problemas de clientes que llaman a WSDCreateDeviceProxy

Las aplicaciones llaman a WSDCreateDeviceProxy para crear e inicializar una instancia de la interfaz IWSDDeviceProxy . Este objeto proxy de dispositivo se puede usar para anunciar servicios en un dispositivo y también para intercambiar metadatos.

Una aplicación que llama a WSDCreateDeviceProxy siempre usa los siguientes mensajes.

Una aplicación que llama a WSDCreateDeviceProxy a veces usa los mensajes siguientes.

Los mensajes ResolveMatches y ResolveMatches se generan cuando se pasa una dirección de dispositivo lógica (es decir, una dirección de dispositivo con el formato urn:uuid:{guid}) a pszDeviceId. Estos mensajes no se generan cuando se pasa una dirección de dispositivo físico a pszDeviceId. Cuando se usan los mensajes Resolve y ResolveMatches, se envían antes de los mensajes Get y GetResponse .

Se deben usar los procedimientos de diagnóstico siguientes (en orden) para ayudar a identificar problemas con una aplicación que llama a WSDCreateDeviceProxy con una dirección de dispositivo físico.

  1. Inspeccione la configuración del adaptador y del firewall.
  2. Use un host genérico y un cliente para el intercambio de metadatos HTTP.
  3. Use el registro winHTTP para comprobar obtener tráfico.
  4. Inspeccione los seguimientos de red para el intercambio de metadatos HTTP.

Se deben usar los procedimientos de diagnóstico siguientes (en orden) para ayudar a identificar problemas con una aplicación que llama a WSDCreateDeviceProxy con una dirección de dispositivo lógico.

  1. Inspeccione la configuración del adaptador y del firewall.
  2. Use un host genérico y un cliente para udp WS-Discovery.
  3. Use el cliente de depuración de WSD para comprobar el tráfico de multidifusión.
  4. Inspeccione los seguimientos de red para la detección de WS udp.
  5. Use un host genérico y un cliente para el intercambio de metadatos HTTP.
  6. Use el registro winHTTP para comprobar obtener tráfico.
  7. Inspeccione los seguimientos de red para el intercambio de metadatos HTTP.

Compruebe que los mensajes Resolve y ResolveMatches se generan y cumplen los requisitos de tráfico. No es necesario buscar mensajes Probe o ProbeMatches en la salida del cliente de depuración de WSD o en los seguimientos de red.

Solución de problemas de clientes que llaman a WSDCreateDeviceProxyAdvanced

Las aplicaciones llaman a WSDCreateDeviceProxyAdvanced para crear e inicializar una instancia de la interfaz IWSDDeviceProxy . A diferencia de WSDCreateDeviceProxy, WSDCreateDeviceProxyAdvanced tiene un parámetro pDeviceAddress que se usa para definir la dirección de transporte del dispositivo. Si se especifica esta dirección de transporte, no se requiere la resolución de direcciones lógicas y no se generan los mensajes Resolve y ResolveMatches .

Si pDeviceAddress se establece en NULL y pszDeviceId es una dirección lógica, se requiere la resolución de direcciones y se generan los mensajes Resolve y ResolveMatches .

Se deben usar los procedimientos de diagnóstico siguientes (en orden) para ayudar a identificar problemas con una aplicación que llama a WSDCreateDeviceProxyAdvanced con un parámetro pDeviceAddress distinto de NULL. Estos procedimientos también se pueden usar cuando pDeviceAddress es NULL y pszDeviceId es una dirección física.

  1. Inspeccione la configuración del adaptador y del firewall.
  2. Use un host genérico y un cliente para el intercambio de metadatos HTTP.
  3. Use el registro winHTTP para comprobar obtener tráfico.
  4. Inspeccione los seguimientos de red para el intercambio de metadatos HTTP.

Se deben usar los procedimientos de diagnóstico siguientes (en orden) para ayudar a identificar problemas con una aplicación que llama a WSDCreateDeviceProxyAdvanced con pDeviceAddress establecido en NULL y con pszDeviceId establecido en una dirección lógica.

  1. Inspeccione la configuración del adaptador y del firewall.
  2. Use un host genérico y un cliente para udp WS-Discovery.
  3. Use el cliente de depuración de WSD para comprobar el tráfico de multidifusión.
  4. Inspeccione los seguimientos de red para la detección de WS udp.
  5. Use un host genérico y un cliente para el intercambio de metadatos HTTP.
  6. Use el registro winHTTP para comprobar obtener tráfico.
  7. Inspeccione los seguimientos de red para el intercambio de metadatos HTTP.

Compruebe que los mensajes Resolve y ResolveMatches se generan y cumplen los requisitos de tráfico. No es necesario buscar mensajes Probe o ProbeMatches en la salida del cliente de depuración de WSD o en los seguimientos de red.

Solución de problemas de clientes mediante la interfaz IWSDiscoveryProvider

Las aplicaciones que llaman a la interfaz IWSDiscoveryProvider no realizan el intercambio de metadatos. Esta interfaz solo se usa para la detección. Los patrones de mensaje y los procedimientos de solución de problemas son diferentes para cada método al que se llama en la interfaz IWSDiscoveryProvider .

Cuando una aplicación llama a IWSDiscoveryProvider::SearchByType, se genera un mensaje de sondeo . La multidifusión UDP envía el mensaje de sondeo al puerto 3702. Se genera un mensaje ProbeMatches en respuesta. La unidifusión UDP envía el mensaje ProbeMatches y se origina en el puerto 3702.

Cuando una aplicación llama a IWSDiscoveryProvider::SearchById, se genera un mensaje Resolve . La multidifusión UDP envía un mensaje Resolve al puerto 3702. Se genera un mensaje ResolveMatches en respuesta. ResolveMatches se envía mediante unidifusión UDP y se origina en el puerto 3702.

Se deben usar los procedimientos de diagnóstico siguientes (en orden) para ayudar a identificar problemas con una aplicación que llama a IWSDiscoveryProvider::SearchByType o IWSDiscoveryProvider::SearchById. Compruebe que los mensajes generados por la API llamada cumplen los requisitos de tráfico.

  1. Inspeccione la configuración del adaptador y del firewall.
  2. Use un host genérico y un cliente para udp WS-Discovery.
  3. Use el cliente de depuración de WSD para comprobar el tráfico de multidifusión.
  4. Inspeccione los seguimientos de red para la detección de WS udp.

Si una aplicación llama a IWSDiscoveryProvider::SearchByAddress, se trata de una aplicación de detección dirigida. Para obtener más información de solución de problemas, consulte Solución de problemas de aplicaciones mediante la detección dirigida.

solución de problemas de Introducción con WSDAPI