Share via


Solução de problemas de outros aplicativos WSDAPI

Os aplicativos podem chamar diretamente interfaces e funções do WSDAPI para executar a descoberta de dispositivos e a troca de metadados. Os padrões de mensagem usados por esses aplicativos variam.

O objetivo deste guia de solução de problemas é ajudar os desenvolvedores de aplicativos WSDAPI a implementar com êxito um proxy de dispositivo. Este guia não se destina a ajudar a solucionar todos os aspectos do WSDAPI. Se o proxy do dispositivo tiver sido criado com êxito e o cliente e o host puderem se ver na rede, este guia não poderá resolver os problemas do aplicativo. Para solucionar esses problemas de aplicativo, siga as instruções em Habilitar o rastreamento do WSDAPI e entre em contato com o suporte da Microsoft para obter mais assistência.

Solução de problemas de clientes que chamam WSDCreateDeviceProxy

Os aplicativos chamam WSDCreateDeviceProxy para criar e inicializar uma instância da interface IWSDDeviceProxy . Esse objeto proxy de dispositivo pode ser usado para anunciar serviços em um dispositivo e também para trocar metadados.

Um aplicativo que chama WSDCreateDeviceProxy sempre usa as mensagens a seguir.

Um aplicativo que chama WSDCreateDeviceProxy às vezes usa as mensagens a seguir.

As mensagens Resolve e ResolveMatches são geradas quando um endereço de dispositivo lógico (ou seja, um endereço de dispositivo do formulário urn:uuid:{guid}) é passado para pszDeviceId. Essas mensagens não são geradas quando um endereço de dispositivo físico é passado para pszDeviceId. Quando as mensagens Resolver e ResolveMatches são usadas, elas são enviadas antes das mensagens Get e GetResponse .

Os procedimentos de diagnóstico a seguir devem ser usados (em ordem) para ajudar a identificar problemas com um aplicativo que chama WSDCreateDeviceProxy com um endereço de dispositivo físico.

  1. Inspecione as configurações de adaptador e firewall.
  2. Use um host genérico e um cliente para troca de metadados HTTP.
  3. Use o log do WinHTTP para verificar Obter tráfego.
  4. Inspecione os rastreamentos de rede para troca de metadados HTTP.

Os procedimentos de diagnóstico a seguir devem ser usados (em ordem) para ajudar a identificar problemas com um aplicativo que chama WSDCreateDeviceProxy com um endereço de dispositivo lógico.

  1. Inspecione as configurações de adaptador e firewall.
  2. Use um host genérico e um cliente para UDP WS-Discovery.
  3. Use o Cliente de Depuração do WSD para verificar o tráfego multicast.
  4. Inspecione os rastreamentos de rede para UDP WS-Discovery.
  5. Use um host genérico e um cliente para troca de metadados HTTP.
  6. Use o log do WinHTTP para verificar Obter tráfego.
  7. Inspecione os rastreamentos de rede para troca de metadados HTTP.

Verifique se as mensagens Resolve e ResolveMatches são geradas e atendem aos requisitos de tráfego. Não é necessário procurar mensagens Probe ou ProbeMatches na saída do cliente de depuração do WSD ou nos rastreamentos de rede.

Solução de problemas de clientes que chamam WSDCreateDeviceProxyAdvanced

Os aplicativos chamam WSDCreateDeviceProxyAdvanced para criar e inicializar uma instância da interface IWSDDeviceProxy . Ao contrário de WSDCreateDeviceProxy, WSDCreateDeviceProxyAdvanced tem um parâmetro pDeviceAddress que é usado para definir o endereço de transporte do dispositivo. Se esse endereço de transporte for especificado, a resolução de endereço lógico não será necessária e as mensagens Resolver e ResolveMatches não serão geradas.

Se pDeviceAddress estiver definido como NULL e pszDeviceId for um endereço lógico, a resolução de endereços será necessária e as mensagens Resolver e ResolveMatches serão geradas.

Os procedimentos de diagnóstico a seguir devem ser usados (em ordem) para ajudar a identificar problemas com um aplicativo que chama WSDCreateDeviceProxyAdvanced com um parâmetro pDeviceAddress não NULL. Esses procedimentos também podem ser usados quando pDeviceAddress é NULL e pszDeviceId é um endereço físico.

  1. Inspecione as configurações de adaptador e firewall.
  2. Use um host genérico e um cliente para troca de metadados HTTP.
  3. Use o log do WinHTTP para verificar Obter tráfego.
  4. Inspecione os rastreamentos de rede para troca de metadados HTTP.

Os procedimentos de diagnóstico a seguir devem ser usados (em ordem) para ajudar a identificar problemas com um aplicativo que chama WSDCreateDeviceProxyAdvanced com pDeviceAddress definido comoNULL e com pszDeviceId definido como um endereço lógico.

  1. Inspecione as configurações de adaptador e firewall.
  2. Use um host genérico e um cliente para UDP WS-Discovery.
  3. Use o Cliente de Depuração do WSD para verificar o tráfego multicast.
  4. Inspecione os rastreamentos de rede para UDP WS-Discovery.
  5. Use um host genérico e um cliente para troca de metadados HTTP.
  6. Use o log do WinHTTP para verificar Obter tráfego.
  7. Inspecione os rastreamentos de rede para troca de metadados HTTP.

Verifique se as mensagens Resolve e ResolveMatches são geradas e atendem aos requisitos de tráfego. Não é necessário procurar mensagens Probe ou ProbeMatches na saída do cliente de depuração do WSD ou nos rastreamentos de rede.

Solução de problemas de clientes usando a interface IWSDiscoveryProvider

Os aplicativos que chamam a interface IWSDiscoveryProvider não executam a troca de metadados. Essa interface só é usada para descoberta. Os padrões de mensagem e os procedimentos de solução de problemas são diferentes para cada método chamado na interface IWSDiscoveryProvider .

Quando um aplicativo chama IWSDiscoveryProvider::SearchByType, uma mensagem de investigação é gerada. A mensagem Probe é enviada por multicast UDP para a porta 3702. Uma mensagem ProbeMatches é gerada em resposta. A mensagem ProbeMatches é enviada pelo unicast UDP e se origina da porta 3702.

Quando um aplicativo chama IWSDiscoveryProvider::SearchById, uma mensagem Resolver é gerada. Uma mensagem Resolver é enviada por multicast UDP para a porta 3702. Uma mensagem ResolveMatches é gerada em resposta. O ResolveMatches é enviado por unicast UDP e é originado da porta 3702.

Os procedimentos de diagnóstico a seguir devem ser usados (em ordem) para ajudar a identificar problemas com um aplicativo que chama IWSDiscoveryProvider::SearchByType ou IWSDiscoveryProvider::SearchById. Verifique se as mensagens geradas pela API chamada atendem aos requisitos de tráfego.

  1. Inspecione as configurações de adaptador e firewall.
  2. Use um host genérico e um cliente para UDP WS-Discovery.
  3. Use o Cliente de Depuração do WSD para verificar o tráfego multicast.
  4. Inspecione os rastreamentos de rede para UDP WS-Discovery.

Se um aplicativo chamar IWSDiscoveryProvider::SearchByAddress, ele será um aplicativo de descoberta direcionado. Para obter mais informações de solução de problemas, consulte Solução de problemas de aplicativos usando a descoberta direcionada.

Introdução com solução de problemas do WSDAPI