Verwenden des WSD-Debugclients zum Überprüfen von Multicastdatenverkehr

Wenn sich der generische Host und der Client im Netzwerk gegenseitig erkennen können, der tatsächliche Host und der Client jedoch nicht, ist es wahrscheinlich, dass sich das Problem in den Nachrichten befindet, die zwischen den Endpunkten über das Netzwerk gesendet werden. Weitere Informationen zum generischen Host und Client finden Sie unter Verwenden eines generischen Hosts und Clients für UDP WS-Discovery. Da vollständige Netzwerkablaufverfolgungen schwierig zu erfassen, zu filtern und zu lesen sind, kann das Tool WSD-Debugclient verwendet werden, um die Multicast-Seiten von WS-Discovery-Nachrichten zu drucken.

Der WSD-Debugclient im Multicastmodus kann nur die Hälfte der Nachrichten prüfen, da der Client keine Unicast-Nachrichten drucken kann. Wenn Unicast-Datenverkehr von Interesse ist, fahren Sie direkt mit Inspizieren von Netzwerkablaufverfolgungen für UDP WS-Discovery fort.

Dieses Verfahren zeigt eine Methode, die den gesamten Multicast-Datenverkehr im Netzwerk anzeigt. Informationen zum Anzeigen lediglich des Multicast-Datenverkehrs zu und vom Gerät finden Sie unten im Abschnitt Filtern des WSD-Debugclient-Ergebnisses.

So verwenden Sie den WSD-Debugclients zum Überprüfen von Multicast-Datenverkehr

  1. Konfigurieren Sie den Host und den Client für die Ausführung über das Netzwerk (d. h. stellen Sie sicher, dass der Host und der Client auf verschiedenen Computern ausgeführt werden).
  2. Öffnen Sie eine Eingabeaufforderung, und führen Sie den folgenden Befehl aus: WSDDebug_client.exe /mode multicast
  3. Reproduzieren Sie den Fehler, indem Sie den Host und den Client starten oder im Netzwerk-Explorer F5 betätigen.
  4. Überprüfen Sie, ob Nachrichten per Multicast gesendet werden.

Wenn die erforderlichen Nachrichten in der Ausgabe des WSD-Debugclients angezeigt werden, befindet sich der Anwendungsfehler möglicherweise im Multicast-Nachrichteninhalt oder im Vorhandensein oder dem Inhalt der entsprechenden Unicast-Antwortnachrichten. Fahren Sie mit der Problembehandlung fort, indem Sie die Anweisungen in Überprüfen von Netzwerkablaufverfolgungen für UDP WS-Discovery befolgen.

Wenn die erforderlichen Nachrichten in der WSD-Debugclient-Ausgabe angezeigt werden, ist es wahrscheinlich, dass die Quelle des Anwendungsproblems identifiziert wurde. Wahrscheinlich wird der Multicast-Datenverkehr nicht im Netzwerk übertragen. Dieser Fehler kann auftreten, wenn die Anwendung Multicast-Adapter nicht korrekt aufzählt. Anwendungen müssen Multicast-Datenverkehr explizit über alle Netzwerkschnittstellen senden; andernfalls werden Pakete für die Loopback-Schnittstelle oder für andere Schnittstellen möglicherweise nicht generiert. Um zu überprüfen, ob die Pakete im Netzwerk angezeigt werden, befolgen Sie die Anweisungen unter Überprüfen von Netzwerkablaufverfolgungen für UDP WS-Discovery, und suchen Sie nach Nachweisen für fehlende Multicast-Nachrichten.

Prüfen, ob Nachrichten per Multicast gesendet werden

Überprüfen Sie immer, ob Test-Nachrichten per Multicast gesendet werden. Überprüfen Sie optional, ob Hello-und Resolve-Nachrichten per Multicast gesendet werden. Beachten Sie, dass nicht alle Anwendungen Resolve-Nachrichten verwenden. Weitere Informationen zu Nachrichten-Mustern, die von Clients und Hosts verwendet werden, finden Sie unter Nachrichten-Muster für die Erkennung und den Austausch von Metadaten und Erste Schritte mit der WSDAPI-Fehlerbehebung.

Nachrichten müssen ausgelöst werden, damit sie gesendet werden können, wie in Schritt 3 oben beschrieben. Der WSD-Debugclient zeigt die unformatierte SOAP-Nachricht als Ausgabe an. Da alle Nachrichten, die vom WSD-Debugclient im Multicastmodus gedruckt werden, über einen Multicast-Socket empfangen werden, wird die Nachrichtenzieladresse nicht angezeigt.

Die folgende Beispielausgabe des WSD-Debugclients zeigt eine Testnachricht. Das <wsa:Action>-Element identifiziert die Nachricht als Testnachricht. Überprüfen Sie das Feld <wsa:Action>, um zu sehen, ob es sich bei der empfangenen Nachricht um eine Testnachricht handelt.

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>

Die folgende Beispielausgabe des WSD-Debugclients zeigt eine „Hello“-Nachricht. Das <wsa:Action>-Element identifiziert die Nachricht als „Hello“-Nachricht.

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>

Filtern der Ergebnisse des WSD-Debugclients

Das Filtern der Ergebnisse des WSD-Debugclients kann dazu beitragen, den Vorfalldatenverkehr mit dem Gerät zu identifizieren. Filterung ist nur in stark ausgelasteten Netzwerken erforderlich.

Es gibt zwei Möglichkeiten, Ergebnisse zu filtern. Die zu filternden IP-Adressen können beim Starten des WSD-Debugclients explizit identifiziert werden. Alternativ können die IP-Adressen angegeben werden, nachdem der Client gestartet wurde. In diesem Abschnitt werden beide Methoden beschrieben.

So geben Sie IP-Adressen an, die beim Starten des WSD-Debugclients gefiltert werden sollen

  1. Konfigurieren Sie den Host und den Client für die Ausführung über das Netzwerk (d. h. stellen Sie sicher, dass der Host und der Client auf verschiedenen Computern ausgeführt werden).
  2. Stellen Sie die IP-Adresse(n) des Geräts zusammen. Wenn das Gerät über mehrere Adressen verfügt (z. B. über IPv4- und IPv6-Adressen), müssen alle Adressen erfasst werden.
  3. Öffnen Sie eine Eingabeaufforderung, und führen Sie den folgenden Befehl aus: WSDDebug_client.exe /mode multicast /ip add <device IP>

<device-IP> ist eine IP-Adresse. Die folgende Liste enthält einige Beispielformate für diese IP-Adresse.

  • 192.168.0.1
  • ::1
  • mydevice.contoso.com

Der WSD-Debugclient löst Hostnamen automatisch auf, die in der Eingabeaufforderung angegeben werden.

So filtern Sie Ergebnisse nach dem Starten des WSD-Debugclients

  1. Konfigurieren Sie den Host und den Client für die Ausführung über das Netzwerk (d. h. stellen Sie sicher, dass der Host und der Client auf verschiedenen Computern ausgeführt werden).
  2. Stellen Sie die IP-Adresse(n) des Geräts zusammen. Wenn das Gerät über mehrere Adressen verfügt (z. B. über IPv4- und IPv6-Adressen), müssen alle Adressen erfasst werden.
  3. Öffnen Sie eine Eingabeaufforderung, und führen Sie den folgenden Befehl aus: WSDDebug_client.exe /mode multicast
  4. Führen Sie in der Eingabeaufforderung des WSD-Debugclients den folgenden Befehl aus: ip add <device IP>
  5. Wiederholen Sie Schritt 4, bis alle Geräte-IP-Adressen hinzugefügt wurden.

Im folgenden Verfahren wird davon ausgegangen, dass der WSD-Debugclient gestartet wurde und dass die Filterung nach IP-Adressen erfolgt.

So überprüfen Sie, ob die korrekten IP-Adressen gefiltert werden

  • Führen Sie in der Eingabeaufforderung des WSD-Debugclients den folgenden Befehl aus: ip print

    Die Liste der gefilterten IP-Adressen wird angezeigt.

Im folgenden Verfahren wird davon ausgegangen, dass der WSD-Debugclient gestartet wurde und dass die Filterung nach IP-Adressen erfolgt.

So deaktivieren Sie die Filterung

  • Führen Sie in der Eingabeaufforderung des WSD-Debugclients den folgenden Befehl aus: ip clear

    Der gesamte Multicast-Datenverkehr wird jetzt in der Debug-Ausgabe angezeigt.

WSDAPI-Diagnoseprozeduren

Erste Schritte bei der Problembehandlung mit WSDAPI