Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os aplicativos podem chamar diretamente interfaces e funções 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 aspetos do WSDAPI. Se o proxy de dispositivo tiver sido criado com êxito e o cliente e o host puderem comunicar-se entre si na rede, este guia não poderá resolver os problemas da aplicação. Para solucionar esses problemas de aplicativos, siga as instruções na seção Habilitando o Rastreamento do WSDAPI e contacte o suporte da Microsoft para obter assistência adicional.
Solução de problemas de clientes que chamam WSDCreateDeviceProxy
Os aplicativos chamam WSDCreateDeviceProxy para criar e inicializar uma instância da interfaceIWSDDeviceProxy. Este objeto proxy de dispositivo pode ser usado para anunciar serviços em um dispositivo e também para trocar metadados.
Um aplicativo chamando WSDCreateDeviceProxy sempre usa as seguintes mensagens.
Um aplicativo chamando WSDCreateDeviceProxy às vezes usa as seguintes mensagens.
Resolve e ResolveMatches são mensagens geradas quando um endereço de dispositivo lógico (ou seja, um endereço de dispositivo do formato urn:uuid:{guid}), é transmitido para pszDeviceId. Essas mensagens não são geradas quando um endereço de dispositivo físico é passado para pszDeviceId. Quando as mensagens Resolve 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 chamando WSDCreateDeviceProxy com um endereço de dispositivo físico.
- Inspecione as configurações do adaptador e do firewall.
- Use um host e um cliente genéricos para troca de metadados HTTP.
- Use o log WinHTTP para verificar o tráfego de GET.
- Inspecione 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 chamando WSDCreateDeviceProxy com um endereço de dispositivo lógico.
- Inspecione as configurações do adaptador e do firewall.
- Use um host e um cliente genéricos para UDP WS-Discovery.
- Use o WSD Debug Client para verificar o tráfego de multicast.
- Inspecione rastreamentos de rede para UDP WS-Discovery.
- Use um host e um cliente genéricos para troca de metadados HTTP.
- Use o registo do WinHTTP para verificar o tráfego.
- Inspecione rastreamentos de rede para troca de metadados HTTP.
Verifique que as mensagens Resolve e ResolveMatches são geradas e cumprem os requisitos de tráfego. Não é necessário procurar pelas mensagens Probe ou ProbeMatches na saída do WSD Debug Client 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 interfaceIWSDDeviceProxy. Ao contrário WSDCreateDeviceProxy, WSDCreateDeviceProxyAdvanced tem um pDeviceAddress parâmetro 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 "Resolve" e "ResolveMatches" não serão geradas.
Se pDeviceAddress estiver definido como NULL e pszDeviceId for um endereço lógico, então será necessário resolver o endereço e as mensagens Resolve e ResolveMatches serão geradas.
Os seguintes procedimentos de diagnóstico devem ser usados (nesta ordem) para ajudar a identificar problemas com uma aplicação ao chamar WSDCreateDeviceProxyAdvanced com um parâmetro pDeviceAddress que não sejaNULL. Esses procedimentos também podem ser usados quando pDeviceAddress é NULL e pszDeviceId é um endereço físico.
- Inspecione as configurações do adaptador e do firewall.
- Use um host e um cliente genéricos para troca de metadados HTTP.
- Utilize o registo WinHTTP para verificar a obtenção de tráfego.
- Inspecione 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 chamando WSDCreateDeviceProxyAdvanced com pDeviceAddress definido como NULL e com pszDeviceId definido como um endereço lógico.
- Inspecione as configurações do adaptador e do firewall.
- Use um host e um cliente genéricos para UDP WS-Discovery.
- Use o WSD Debug Client para verificar o tráfego de multicast.
- Inspecione rastreamentos de rede para UDP WS-Discovery.
- Use um host e um cliente genéricos para troca de metadados HTTP.
- Use o registo do WinHTTP para verificar o tráfego Get.
- Inspecione 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 por mensagens do tipo Probe ou ProbeMatches na saída do WSD Debug Client ou nos rastreamentos de rede.
Solução de problemas de clientes usando a interface IWSDiscoveryProvider
As aplicações que chamam a interface IWSDiscoveryProvider não executam a troca de metadados. Essa interface é usada apenas 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 Probe é gerada. A mensagem de sondagem é enviada por multicast UDP para a porta 3702. Uma mensagem ProbeMatches é gerada em resposta. A mensagem ProbeMatches é enviada por UDP unicast e origina-se da porta 3702.
Quando um aplicativo chama IWSDiscoveryProvider::SearchById, uma mensagem Resolve é gerada. Uma mensagem Resolve é enviada pelo multicast UDP para a porta 3702. Uma mensagem ResolveMatches é gerada em resposta. O ResolveMatches é enviado por UDP unicast e origina-se da porta 3702.
Os seguintes procedimentos de diagnóstico devem ser usados (em ordem) para ajudar a identificar problemas com um aplicativo chamando IWSDiscoveryProvider::SearchByType ou IWSDiscoveryProvider::SearchById. Verifique se as mensagens geradas pela API chamada satisfazem os requisitos de tráfego.
- Inspecione as configurações do adaptador e do firewall.
- Use um host e um cliente genéricos para UDP WS-Discovery.
- Use o WSD Debug Client para verificar o tráfego de multicast.
- Inspecione rastreamentos de rede para UDP WS-Discovery.
Se um aplicativo chamar IWSDiscoveryProvider::SearchByAddress, então é um aplicativo de descoberta direcionada. Para obter mais informações sobre solução de problemas, consulte Solucionando problemas de aplicativos usando a descoberta direcionada.
Tópicos relacionados