Uso di un host generico e di un client per Http Metadata Exchange

Se il client e l'host non possono scambiare metadati, un host generico e un client possono essere sostituiti per l'host personalizzato e il client per risolvere il problema. Se l'indirizzo del dispositivo o i metadati del dispositivo non vengono visualizzati nell'output client di debug WSD, gli indirizzi di trasporto forniti o l'ambiente di rete potrebbero causare l'errore. Per altre informazioni sull'host generico e sul client, vedere Strumenti di debug.

Se è stato verificato che un host generico e un client possono completare sia WS-Discovery che lo scambio di metadati HTTP, questa procedura di diagnostica può essere ignorata e la risoluzione dei problemi può essere continuata seguendo le procedure in Uso di Registrazione WinHTTP per verificare il traffico.

Se l'host o il client è un'applicazione in esecuzione in un PC, l'host generico o il client devono essere eseguiti nello stesso contesto di sicurezza dell'host o del client effettivo. Ad esempio, se l'host o il client effettivo viene eseguito come amministratore, l'host generico o il client devono essere eseguiti come amministratore. Inoltre, se l'host o il client è un dispositivo autonomo, deve essere completamente sostituito da un PC che esegue un host generico o un client in un contesto di sicurezza che garantisce l'accesso alla rete illimitato(ad esempio, in esecuzione come amministratore).

Per usare un host generico e un client per risolvere i problemi relativi allo scambio di metadati HTTP

  1. Aprire una finestra del prompt dei comandi.

  2. Eseguire il comando seguente: WSDDebug_host.exe /mode metadati /start

    Nota

    Può essere visualizzata una finestra di dialogo avviso Sicurezza di Windows. In tal caso, fare clic su Sblocca per consentire l'esecuzione dell'host di debug WSD.

     

    Questo comando genera l'output simile al seguente. Prendere nota dell'ID 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. Eseguire il comando seguente: WSDDebug_client.exe /mode metadati /hello off /resolve<id>. Sostituire <l'ID con l'ID> dispositivo identificato nel passaggio 2.

    Nota

    Può essere visualizzata una finestra di dialogo avviso Sicurezza di Windows. In tal caso, fare clic su Sblocca per consentire l'esecuzione del client di debug WSD.

     

Il client di debug WSD genera l'output simile al seguente.

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>

Il client di debug WSD può generare un sacco di output in una rete con molti dispositivi DPWS. L'output può essere reindirizzato a un file per un'analisi più semplice. Digitare ilnome file> di log< nel prompt del client di debug WSD per reindirizzare l'output a un file. Il reindirizzamento dell'output può essere arrestato digitando log tee stop al prompt del client di debug WSD.

Prendere nota dell'indirizzo EPR (Endpoint Reference). Questo indirizzo EPR deve corrispondere all'ID del dispositivo identificato nel passaggio 2 precedente. Verificare inoltre che il client di debug WSD stampa completamente i metadati per il dispositivo. I metadati del dispositivo iniziano con e terminano con Metadata for hostEnd of metadata.

Se l'ID del dispositivo e i metadati del dispositivo vengono visualizzati correttamente nell'output client di debug WSD, è probabile che l'errore dell'applicazione non sia correlato agli indirizzi di trasporto forniti, al sistema operativo o all'ambiente di rete. Sostituire l'host generico e il client con l'host e il client personalizzati e continuare la risoluzione dei problemi seguendo le procedure in Uso di Registrazione WinHTTP per verificare il traffico.

Se l'indirizzo del dispositivo e i metadati del dispositivo non vengono visualizzati nell'output client di debug WSD, l'errore potrebbe avere una o più delle cause seguenti:

  • L'indirizzo di trasporto annunciato dall'host non è corretto o non valido. WSD Debug Client tenta di ottenere i metadati del dispositivo dall'URL fornito nell'elemento XAddrs di un messaggio ProbeMatches o ResolveMatches. L'URL usato per lo scambio di metadati viene visualizzato nell'output client di debug WSD, preceduto dalla frase Using xAddr. Nell'esempio seguente vengono illustrati Iaggiungi usati per lo scambio di metadati nell'output del client di debug WSD precedente.

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

    Se XAddrs fornito non è conforme alle regole di convalida XAddr, il client di debug WSD non può ottenere i metadati del dispositivo.

  • L'applicazione è in esecuzione nel contesto di sicurezza errato. Verificare che l'applicazione usi le credenziali corrette e che il client e l'host dispongano di autorizzazioni sufficienti per accedere alla rete.

  • La configurazione del firewall non è corretta. Seguire le istruzioni riportate in Controllo adattatore e impostazioni firewall per verificare che le impostazioni di Windows Firewall siano corrette e che non siano presenti altre regole che eliminano i pacchetti. Il client e l'host possono anche essere copiati in un computer "incontaminato" (uno con un'installazione predefinita del sistema operativo che non è mai stata unita a un dominio) per tentare di riprodurre l'errore.

  • Un criterio IPSec blocca l'applicazione. Copiare il client e l'host in un computer che non è soggetto ai criteri IPSec e provare a riprodurre l'errore.

Procedure di diagnostica WSDAPI

Introduzione con risoluzione dei problemi di WSDAPI