Usando um host genérico e um cliente para o Exchange de Metadados HTTP

Se o cliente e o host não puderem trocar metadados, um host genérico e um cliente poderão ser substituídos pelo host personalizado e pelo cliente para ajudar a solucionar o problema. Se o endereço do dispositivo ou os metadados do dispositivo não aparecerem na saída do cliente de depuração do WSD, os endereços de transporte fornecidos ou o ambiente de rede poderão estar causando a falha. Para obter mais informações sobre o host genérico e o cliente, consulte Ferramentas de depuração.

Se tiver sido verificado que um host genérico e um cliente podem concluir a troca de metadados WS-Discovery e HTTP, esse procedimento de diagnóstico poderá ser ignorado e a solução de problemas poderá continuar seguindo os procedimentos em Usando o registro em log winhttp para verificar o tráfego de obtenção.

Se o host ou o cliente for um aplicativo em execução em um computador, o host genérico ou o cliente deverão ser executados no mesmo contexto de segurança que o host ou cliente real. Por exemplo, se o host ou cliente real for executado como Administrador, o host ou cliente genérico deverá ser executado como Administrador. Além disso, se o host ou o cliente for um dispositivo autônomo, ele deverá ser completamente substituído por um computador que executa um host ou cliente genérico em um contexto de segurança que garanta acesso ilimitado à rede (por exemplo, em execução como Administrador).

Para usar um host genérico e um cliente para solucionar problemas de troca de metadados HTTP

  1. Abra una janela de prompt de comando.

  2. Execute o seguinte comando: WSDDebug_host.exe /mode metadata /start

    Observação

    Uma caixa de diálogo Alerta Segurança do Windows pode aparecer. Nesse caso, clique em Desbloquear para permitir que o Host de Depuração do WSD seja executado.

     

    Esse comando gera uma saída semelhante à seguinte. Anote a ID do dispositivo.

    WSDAPI Debug Host
    Copyright (C) Microsoft Corporation 2007.  All rights reserved.
    Device ID is urn:uuid:37f86d35-e6ac-4241-964f-1d9ae46fb366
    Host metadata>
    
  3. Execute o seguinte comando: WSDDebug_client.exe metadados /mode /hello off /resolve<id>. Substitua <id> pela ID do dispositivo identificada na etapa 2.

    Observação

    Uma caixa de diálogo Alerta Segurança do Windows pode aparecer. Nesse caso, clique em Desbloquear para permitir que o cliente de depuração do WSD seja executado.

     

O WSD Debug Client gera uma saída semelhante à seguinte.

WSDAPI Debug Client
Copyright (C) Microsoft Corporation 2007.  All rights reserved.
Client ID is urn:uuid:0f571af7-6b0e-4daf-8054-f2233ac27910
Hello mode is disabled
Client metadata>
*****************************************************************************
Add at 02/28/07 15:16:51
+ EPR:
  + Address:                 urn:uuid:37f86d35-e6ac-4241-964f-1d9ae46fb366
+ Types:
    (wsdp) https://schemas.xmlsoap.org/ws/2006/02/devprof:Device
+ XAddrs:
  https://[::1]:5357/37f86d35-e6ac-4241-964f-1d9ae46fb366
+ Metadata version:          2
+ Instance ID:               1
+ Probe/Resolve tag:         WSDAPI debug_client
+ Remote transport address:  [::1]:3702
+ Local transport address:   ::1
+ Local interface GUID:      42133cd4-6a70-11db-bbc9-806e6f6e6963
Client metadata>
*****************************************************************************
Getting metadata for host at 02/28/07 15:16:51:
+ Endpoint reference:
  + Address:
    urn:uuid:37f86d35-e6ac-4241-964f-1d9ae46fb366
Using xAddr: https://[::1]:5357/37f86d35-e6ac-4241-964f-1d9ae46fb366
Client metadata>
*****************************************************************************
Metadata for host:
+ Endpoint reference:
  + Address:           urn:uuid:37f86d35-e6ac-4241-964f-1d9ae46fb366
Metadata section:
  + Dialect:
    https://schemas.xmlsoap.org/ws/2006/02/devprof/ThisDevice
  + Friendly name:
    [no lang]: Debugging Host
  + Firmware version:  1.0
  + Serial number:     00000000
Metadata section:
  + Dialect:
    https://schemas.xmlsoap.org/ws/2006/02/devprof/ThisModel
  + Manufacturer:
    [no lang]: Microsoft Corporation
  + Manufacturer URL:  https://www.microsoft.com/
  + Model names:
    [no lang]: Microsoft Debugging Host
  + Model number:      https://www.microsoft.com/
End of metadata
Client metadata>

O cliente de depuração do WSD pode gerar muita saída em uma rede com muitos dispositivos DPWS. A saída pode ser redirecionada para um arquivo para facilitar a análise. Digite nome de> arquivo tee< de log no prompt do cliente de depuração do WSD para redirecionar a saída para um arquivo. O redirecionamento de saída pode ser interrompido digitando a parada de tee do log no prompt do cliente de depuração do WSD.

Anote o endereço de referência de ponto de extremidade (EPR). Esse endereço EPR deve corresponder à ID do dispositivo identificada na etapa 2 acima. Além disso, verifique se o cliente de depuração do WSD imprimiu completamente os metadados do dispositivo. Os metadados do dispositivo começam com Metadata for host e terminam com End of metadata.

Se a ID do dispositivo e os metadados do dispositivo aparecerem corretamente na saída do cliente de depuração do WSD, a falha do aplicativo provavelmente não está relacionada aos endereços de transporte fornecidos, ao sistema operacional ou ao ambiente de rede. Substitua o host e o cliente genéricos pelo host e pelo cliente personalizados e continue a solução de problemas seguindo os procedimentos em Usando o log winHTTP para verificar o tráfego de obtenção.

Se o endereço do dispositivo e os metadados do dispositivo não aparecerem na saída do cliente de depuração do WSD, a falha poderá ter uma ou mais das seguintes causas:

  • O endereço de transporte anunciado pelo host está incorreto ou malformado. O cliente de depuração do WSD tenta obter metadados do dispositivo da URL fornecida no elemento XAddrs de uma mensagem ProbeMatches ou ResolveMatches . A URL usada para troca de metadados aparece na saída do cliente de depuração do WSD, prefixada pela frase Using xAddr. O exemplo a seguir mostra os XAddrs usados para troca de metadados na saída do cliente de depuração WSD acima.

    Using xAddr: https://[::1]:5357/37f86d35-e6ac-4241-964f-1d9ae46fb366
    

    Se os XAddrs fornecidos não estiverem em conformidade com as regras de validação XAddr, o Cliente de Depuração do WSD não poderá obter os metadados do dispositivo.

  • O aplicativo está em execução no contexto de segurança errado. Verifique se o aplicativo está usando as credenciais corretas e se o cliente e o host têm permissão suficiente para acessar a rede.

  • A configuração do firewall está errada. Siga as instruções em Inspecionar o Adaptador e as Configurações de Firewall para verificar se as configurações do Firewall do Windows estão corretas e se não há outras regras descartando os pacotes. O cliente e o host também podem ser copiados em um computador "imaculado" (um com uma instalação padrão do sistema operacional que nunca foi ingressada em um domínio) para tentar reproduzir a falha.

  • Uma política IPSec está bloqueando o aplicativo. Copie o cliente e o host em um computador que não esteja sujeito a políticas IPSec e tente reproduzir a falha.

Procedimentos de diagnóstico WSDAPI

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