Utilisation du client de débogage WSD pour vérifier le trafic de multidiffusion
Si l’hôte générique et le client peuvent se voir sur le réseau mais que l’hôte et le client réels ne le peuvent pas, il est probable que le problème réside dans les messages envoyés entre les points de terminaison sur le réseau. Pour plus d’informations sur l’hôte générique et le client, veuillez consulter la section Utilisation d’un hôte générique et d’un client pour UDP WS-Discovery. Parce qu’il peut être difficile de collecter, filtrer et lire des traces réseau complètes, l’outil WSD Debug Client peut être utilisé pour imprimer les côtés multicast des messages WS-Discovery.
Le WSD Debug Client en mode multicast ne peut inspecter que la moitié des messages, car le client ne peut pas imprimer les messages unicast. Si le trafic unicast vous intéresse, passez directement à la section Inspection des traces réseau pour UDP WS-Discovery.
Cette procédure montre une méthode qui affichera tout le trafic multicast sur le réseau. Pour afficher uniquement le trafic multicast vers et depuis le périphérique, veuillez consulter la section Filtrage des résultats du WSD Debug Client ci-dessous.
Pour utiliser le WSD Debug Client afin de vérifier le trafic multicast
- Configurez l’hôte et le client pour qu’ils fonctionnent sur le réseau (c’est-à-dire, assurez-vous que l’hôte et le client fonctionnent sur des machines différentes).
- Ouvrez une invite de commande et exécutez la commande suivante : WSDDebug_client.exe /mode multicast
- Reproduisez la défaillance en démarrant l’hôte et le client ou en appuyant sur F5 dans l’Explorateur réseau.
- Vérifiez que les messages sont en cours de multidiffusion.
Si les messages requis sont affichés dans la sortie du WSD Debug Client, alors la défaillance de l’application peut être due au contenu du message multicast ou à l’existence ou au contenu des messages de réponse unicast correspondants. Continuez le dépannage en suivant les instructions de la section Inspection des traces réseau pour UDP WS-Discovery.
Si les messages requis sont affichés dans la sortie du WSD Debug Client, il est probable que la source du problème de l’application ait été identifiée. Il est probable que le trafic multicast ne soit pas transmis sur le réseau. Cette défaillance peut se produire lorsque l’application n’énumère pas correctement les adaptateurs multicast. Les applications doivent explicitement envoyer le trafic multicast sur toutes les interfaces réseau ; sinon, les paquets peuvent ne pas être générés pour l’interface de bouclage ou pour d’autres interfaces. Pour vérifier que les paquets n’apparaissent pas sur le réseau, suivez les instructions de la section Inspection des traces réseau pour UDP WS-Discovery et recherchez des preuves de messages multicast manquants.
Vérification que les messages sont en cours de multidiffusion
Vérifiez toujours que les messages Probe sont en cours de multidiffusion. Optionnellement, vérifiez que les messages Hello et Resolve sont en cours de multidiffusion. Notez que toutes les applications n’utilisent pas les messages Resolve. Pour plus d’informations sur les modèles de messages utilisés par les clients et les hôtes, consultez les sections Modèles de messages de découverte et d’échange de métadonnées et Premiers pas avec le dépannage WSDAPI.
Les messages doivent être déclenchés pour être envoyés comme décrit à l’étape 3 ci-dessus. Le WSD Debug Client affiche le message SOAP brut en sortie. Comme tous les messages imprimés par le WSD Debug Client en mode multicast sont reçus via une socket multicast, l’adresse de destination du message n’est pas affichée.
L’exemple de sortie du WSD Debug Client suivant montre un message Probe. L’élément <wsa:Action> identifie le message comme un message Probe. Inspectez le champ <wsa:Action> pour vérifier que le message reçu était un message 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’exemple de sortie du WSD Debug Client suivant montre un message Hello. L’élément <wsa:Action> identifie le message comme un message 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>
Filtrage des résultats du WSD Debug Client
Le filtrage des résultats du WSD Debug Client peut aider à identifier le trafic incident impliquant le périphérique. Le filtrage n’est nécessaire que sur les réseaux bruyants.
Il existe deux manières de filtrer les résultats. Les adresses IP à filtrer peuvent être explicitement identifiées au démarrage du WSD Debug Client. Alternativement, les adresses IP peuvent être spécifiées après le démarrage du client. Cette section décrit les deux méthodes.
Pour spécifier les adresses IP à filtrer lors du démarrage du WSD Debug Client
- Configurez l’hôte et le client pour qu’ils fonctionnent sur le réseau (c’est-à-dire, assurez-vous que l’hôte et le client fonctionnent sur des machines différentes).
- Collectez les adresses IP du périphérique. Si le périphérique a plusieurs adresses (par exemple, il a des adresses IPv4 et IPv6), toutes les adresses doivent être collectées.
- Ouvrez une invite de commande et exécutez la commande suivante : WSDDebug_client.exe /mode multicast /ip add <adresse IP du périphérique>
<adresse IP du périphérique> est une adresse IP. La liste suivante montre quelques formats d’exemple pour cette adresse IP.
- 192.168.0.1
- ::1
- mydevice.contoso.com
Le WSD Debug Client résout automatiquement les noms d’hôte fournis à l’invite de commande.
Pour filtrer les résultats après le démarrage du WSD Debug Client
- Configurez l’hôte et le client pour qu’ils fonctionnent sur le réseau (c’est-à-dire, assurez-vous que l’hôte et le client fonctionnent sur des machines différentes).
- Collectez les adresses IP du périphérique. Si le périphérique a plusieurs adresses (par exemple, il a des adresses IPv4 et IPv6), toutes les adresses doivent être collectées.
- Ouvrez une invite de commande et exécutez la commande suivante : WSDDebug_client.exe /mode multicast
- À l’invite de commande du WSD Debug Client, exécutez la commande suivante : ip add <adresse IP du périphérique>
- Répétez l’étape 4 jusqu’à ce que toutes les adresses IP du périphérique aient été ajoutées.
La procédure suivante suppose que le WSD Debug Client a été démarré et que le filtrage par adresse IP est en cours.
Pour vérifier que les adresses IP correctes sont filtrées
À l’invite de commande du WSD Debug Client, exécutez la commande suivante : ip print
La liste des adresses IP filtrées apparaît.
La procédure suivante suppose que le WSD Debug Client a été démarré et que le filtrage par adresse IP est en cours.
Pour désactiver le filtrage
À l’invite de commande du WSD Debug Client, exécutez la commande suivante : ip clear
Tout le trafic multicast sera désormais affiché dans la sortie de débogage.
Rubriques connexes