Uso del client di debug WSD per verificare il traffico multicast
Se l'host generico e il client possono vedersi tra loro in rete, ma l'host e il client effettivi non possono, è probabile che il problema si verifichi nei messaggi inviati tra gli endpoint in rete. Per altre informazioni sull'host generico e sul client, vedere Uso di un host generico e di un client per L'individuazione WS-UDP. Poiché le tracce di rete complete possono essere difficili da raccogliere, filtrare e leggere, lo strumento client di debug WSD può essere usato per stampare i lati multicast dei messaggi WS-Discovery.
Il client di debug WSD in modalità multicast può controllare solo la metà dei messaggi, perché il client non può stampare messaggi unicast. Se il traffico unicast è di interesse, passare direttamente a Ispezionare le tracce di rete per l'individuazione WS-UDP.
Questa procedura mostra un metodo che visualizzerà tutto il traffico multicast nella rete. Per visualizzare solo il traffico multicast da e verso il dispositivo, vedere la sezione Filtri dei risultati client di debug WSD di seguito.
Per usare il client di debug WSD per verificare il traffico multicast
- Configurare l'host e il client per l'esecuzione in rete, ovvero assicurarsi che l'host e il client funzioneranno su computer diversi.
- Aprire un prompt dei comandi ed eseguire il comando seguente: WSDDebug_client.exe /mode multicast
- Riprodurre l'errore avviando l'host e il client o premendo F5 in Network Explorer.
- Verificare che i messaggi siano multicast.
Se i messaggi necessari vengono visualizzati nell'output del client di debug WSD, l'errore dell'applicazione potrebbe trovarsi nel contenuto del messaggio multicast o nell'esistenza o nel contenuto dei messaggi di risposta unicast corrispondenti. Continuare la risoluzione dei problemi seguendo le istruzioni riportate in Esaminare le tracce di rete per l'individuazione WS-UDP.
Se i messaggi necessari vengono visualizzati nell'output del client di debug WSD, è probabile che sia stata identificata l'origine del problema dell'applicazione. È probabile che il traffico multicast non venga trasmesso in rete. Questo errore può verificarsi quando l'applicazione non enumera correttamente le schede multicast. Le applicazioni devono inviare in modo esplicito il traffico multicast su tutte le interfacce di rete; in caso contrario, i pacchetti potrebbero non essere generati per l'interfaccia di loopback o per altre interfacce. Per verificare che i pacchetti non vengano visualizzati in rete, seguire le istruzioni in Esaminare le tracce di rete per l'individuazione WS-UDP e cercare l'evidenza dei messaggi multicast mancanti.
Verifica che i messaggi siano multicast
Verificare sempre che i messaggi probe siano multicast. Facoltativamente, verificare che i messaggi Hello e Resolve siano multicast. Si noti che non tutte le applicazioni usano Risolvi messaggi. Per altre informazioni sui modelli di messaggio usati dai client e dagli host, vedere Individuazione e modelli di messaggi di Scambio di metadati e Introduzione alla risoluzione dei problemi di WSDAPI.
I messaggi devono essere attivati per poter essere inviati come descritto nel passaggio 3 precedente. Il client di debug WSD visualizza il messaggio SOAP non elaborato come output. Poiché tutti i messaggi stampati dal client di debug WSD in modalità multicast vengono ricevuti su un socket multicast, l'indirizzo di destinazione del messaggio non viene visualizzato.
L'output del client di debug WSD di esempio seguente mostra un messaggio probe. L'elemento <wsa:Action> identifica il messaggio come messaggio probe. Esaminare il <campo wsa:Action> per verificare che il messaggio ricevuto sia un messaggio probe.
UDP message at 05/08/07 10:06:55 from soap.udp://[127.0.0.1:49334]
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="https://www.w3.org/2003/05/soap-envelope" xmlns:wsa="h
ttp://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsd="https://schemas.xmlso
ap.org/ws/2005/04/discovery" xmlns:wsdp="https://schemas.xmlsoap.org/ws/2006/02/d
evprof"><soap:Header><wsa:To>urn:schemas-xmlsoap-org:ws:2005:04:discovery</wsa:T
o><wsa:Action>https://schemas.xmlsoap.org/ws/2005/04/discovery/Probe</wsa:Action>
<wsa:MessageID>urn:uuid:256ad815-1576-4e59-8efc-4c1e0f15fdd2</wsa:MessageID></so
ap:Header><soap:Body><wsd:Probe><wsd:Types>wsdp:Device</wsd:Types></wsd:Probe></
soap:Body></soap:Envelope>
L'output del client di debug WSD di esempio seguente mostra un messaggio Hello. L'elemento <wsa:Action> identifica il messaggio come messaggio Hello.
UDP message at 05/08/07 10:10:49 from soap.udp://[[::1]:49343]
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="https://www.w3.org/2003/05/soap-envelope" xmlns:wsa="h
ttp://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsd="https://schemas.xmlso
ap.org/ws/2005/04/discovery" xmlns:wsdp="https://schemas.xmlsoap.org/ws/2006/02/d
evprof"><soap:Header><wsa:To>urn:schemas-xmlsoap-org:ws:2005:04:discovery</wsa:T
o><wsa:Action>https://schemas.xmlsoap.org/ws/2005/04/discovery/Hello</wsa:Action>
<wsa:MessageID>urn:uuid:8999e29a-b056-4345-9e13-f42dbedab28a</wsa:MessageID><wsd
:AppSequence InstanceId="1" SequenceId="urn:uuid:abb0a2a1-6efc-4242-b8e7-c02484a
6eea2" MessageNumber="1"></wsd:AppSequence></soap:Header><soap:Body><wsd:Hello><
wsa:EndpointReference><wsa:Address>urn:uuid:02a76d74-82d0-43e6-ab09-16f54ab81ac6
</wsa:Address></wsa:EndpointReference><wsd:Types>wsdp:Device</wsd:Types><wsd:Met
adataVersion>1</wsd:MetadataVersion></wsd:Hello></soap:Body></soap:Envelope>
Filtro dei risultati del client di debug WSD
Il filtro dei risultati del client di debug WSD consente di identificare il traffico degli eventi imprevisti che interessa il dispositivo. Il filtro è necessario solo sulle reti rumorose.
Esistono due modi per filtrare i risultati. Gli indirizzi IP da filtrare possono essere identificati in modo esplicito all'avvio del client di debug WSD. In alternativa, è possibile specificare gli indirizzi IP dopo l'avvio del client. In questa sezione vengono descritti entrambi i metodi.
Per specificare gli indirizzi IP da filtrare all'avvio del client di debug WSD
- Configurare l'host e il client per l'esecuzione in rete, ovvero assicurarsi che l'host e il client funzioneranno su computer diversi.
- Raccogliere gli indirizzi IP del dispositivo. Se il dispositivo ha più indirizzi (ad esempio, ha sia indirizzi IPv4 che IPv6) tutti gli indirizzi devono essere raccolti.
- Aprire un prompt dei comandi ed eseguire il comando seguente: WSDDebug_client.exe /mode multicast /ip add <device IP>
<l'indirizzo IP> del dispositivo è un indirizzo IP. L'elenco seguente mostra alcuni formati di esempio per questo indirizzo IP.
- 192.168.0.1
- :1
- mydevice.contoso.com
Il client di debug WSD risolve automaticamente i nomi host forniti al prompt dei comandi.
Per filtrare i risultati dopo l'avvio del client di debug WSD
- Configurare l'host e il client per l'esecuzione in rete, ovvero assicurarsi che l'host e il client funzioneranno su computer diversi.
- Raccogliere gli indirizzi IP del dispositivo. Se il dispositivo ha più indirizzi (ad esempio, ha sia indirizzi IPv4 che IPv6) tutti gli indirizzi devono essere raccolti.
- Aprire un prompt dei comandi ed eseguire il comando seguente: WSDDebug_client.exe /mode multicast
- Al prompt dei comandi del client di debug WSD eseguire il comando seguente: ip add <device IP>
- Ripetere il passaggio 4 fino a quando non sono stati aggiunti tutti gli indirizzi IP del dispositivo.
La procedura seguente presuppone che il client di debug WSD sia stato avviato e che si verifichi un filtro in base all'indirizzo IP.
Per verificare che gli indirizzi IP corretti siano filtrati
Al prompt dei comandi del client di debug WSD eseguire il comando seguente: ip print
Viene visualizzato l'elenco degli indirizzi IP filtrati.
La procedura seguente presuppone che il client di debug WSD sia stato avviato e che si verifichi un filtro in base all'indirizzo IP.
Per disabilitare il filtro
Al prompt dei comandi del client di debug WSD eseguire il comando seguente: ip clear
Tutto il traffico multicast verrà ora visualizzato nell'output di debug.
Argomenti correlati