Verwenden des WSD-Debugclients zum Überprüfen des Multicastdatenverkehrs
Wenn sich der generische Host und der Client im Netzwerk sehen können, der tatsächliche Host und der Client jedoch nicht, liegt das Problem wahrscheinlich in den Nachrichten, 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 die UDP-WS-Ermittlung. Da vollständige Netzwerkablaufverfolgungen schwierig zu erfassen, zu filtern und zu lesen sein können, kann das WSD-Debugclienttool verwendet werden, um die Multicastseiten WS-Discovery Nachrichten zu drucken.
Der WSD-Debugclient im Multicastmodus kann nur die Hälfte der Nachrichten überprüfen, da der Client keine Unicastnachrichten drucken kann. Wenn Unicastdatenverkehr von Interesse ist, fahren Sie direkt mit Inspecting Network Traces for UDP WS-Discovery (Überprüfen von Netzwerkablaufverfolgungen für die UDP-WS-Ermittlung)über.
Dieses Verfahren zeigt eine Methode, die den gesamten Multicastdatenverkehr im Netzwerk anzeigt. Informationen zum Anzeigen von Multicastdatenverkehr zum und vom Gerät finden Sie weiter unten im Abschnitt Filtern von WSD-Debugclientergebnissen.
So verwenden Sie den WSD-Debugclient zum Überprüfen des Multicastdatenverkehrs
- Konfigurieren Sie den Host und den Client so, dass sie über das Netzwerk ausgeführt werden .(Stellen Sie also sicher, dass der Host und der Client auf verschiedenen Computern ausgeführt werden.
- Öffnen Sie eine Eingabeaufforderung, und führen Sie den folgenden Befehl aus: WSDDebug _client.exe /mode multicast
- Reproduzieren Sie den Fehler, indem Sie host und client starten oder F5 im Netzwerk-Explorer drücken.
- Überprüfen Sie, ob Nachrichten multicastiert werden.
Wenn die erforderlichen Nachrichten in der Ausgabe des WSD-Debugclients angezeigt werden, kann sich der Anwendungsfehler im Inhalt der Multicastnachricht oder im Vorhandensein oder Inhalt der entsprechenden Unicastantwortnachrichten befinden. Fahren Sie mit der Problembehandlung fort, indem Sie die Anweisungen unter Überprüfen von Netzwerkablaufverfolgungen für die UDP-WS-Ermittlungbefolgen.
Wenn die erforderlichen Meldungen in der Ausgabe des WSD-Debugclients angezeigt werden, ist es wahrscheinlich, dass die Ursache des Anwendungsproblems identifiziert wurde. Es ist wahrscheinlich, dass der Multicastdatenverkehr nicht im Netzwerk übertragen wird. Dieser Fehler kann auftreten, wenn die Anwendung Multicastadapter nicht ordnungsgemäß aufzählt. Anwendungen müssen multicast-Datenverkehr explizit über alle Netzwerkschnittstellen senden. Andernfalls werden Pakete möglicherweise nicht für die Loopbackschnittstelle oder für andere Schnittstellen generiert. Um zu überprüfen, ob die Pakete nicht im Netzwerk angezeigt werden, befolgen Sie die Anweisungen unter Überprüfen von Netzwerkablaufverfolgungen für die UDP-WS-Ermittlung, und suchen Sie nach Hinweisen auf fehlende Multicastnachrichten.
Überprüfen, ob Nachrichten multicastiert werden
Überprüfen Sie immer, ob Testnachrichten multicasting werden. Stellen Sie optional sicher, dass Die Nachrichten Hello und Resolve multicast werden. Beachten Sie, dass nicht alle Anwendungen Resolve messages verwenden. Weitere Informationen zu Nachrichtenmustern, die von Clients und Hosts verwendet werden, finden Sie unter Ermittlung und Metadaten Exchange Nachrichtenmustern und Erste Schritte mit WSDAPI Troubleshooting.
Nachrichten müssen ausgelöst werden, damit sie wie in Schritt 3 oben beschrieben gesendet werden. Der WSD-Debugclient zeigt die unformatierte SOAP-Nachricht als Ausgabe an. Da alle vom WSD-Debugclient im Multicastmodus ausgegebenen Nachrichten über einen Multicastsocket empfangen werden, wird die Zieladresse der Nachricht nicht angezeigt.
Die folgende Beispielausgabe des WSD-Debugclients zeigt eine Testmeldung. Das <wsa:Action> -Element identifiziert die Nachricht als Probe-Nachricht. Überprüfen Sie das <wsa:Action> Feld, um zu überprüfen, 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-Meldung. 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 von WSD-Debugclientergebnissen
Das Filtern der Ergebnisse des WSD-Debugclients kann dabei helfen, Incidentdatenverkehr im Zusammenhang mit dem Gerät zu identifizieren. Filterung ist nur in lauten 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
- Konfigurieren Sie den Host und den Client so, dass sie über das Netzwerk ausgeführt werden .(Stellen Sie also sicher, dass der Host und der Client auf verschiedenen Computern ausgeführt werden.
- Erfassen Sie die IP-Adressen des Geräts. Wenn das Gerät über mehrere Adressen verfügt (z. B. sowohl IPv4- als auch IPv6-Adressen), müssen alle Adressen gesammelt werden.
- Öffnen Sie eine Eingabeaufforderung, und führen Sie den folgenden Befehl aus: WSDDebug _client.exe /mode multicast /ip add**
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 automatisch hostnames auf, die an der Eingabeaufforderung angegeben werden.
So filtern Sie ergebnisse nach dem Starten des WSD-Debugclients
- Konfigurieren Sie den Host und den Client so, dass sie über das Netzwerk ausgeführt werden .(Stellen Sie also sicher, dass der Host und der Client auf verschiedenen Computern ausgeführt werden.
- Erfassen Sie die IP-Adressen des Geräts. Wenn das Gerät über mehrere Adressen verfügt (z. B. sowohl IPv4- als auch IPv6-Adressen), müssen alle Adressen gesammelt werden.
- Öffnen Sie eine Eingabeaufforderung, und führen Sie den folgenden Befehl aus: WSDDebug _client.exe /mode multicast
- Führen Sie an der Eingabeaufforderung des WSD-Debugclients den folgenden Befehl aus: ip add**
- 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 eine Filterung nach IP-Adresse erfolgt.
So überprüfen Sie, ob die richtigen IP-Adressen gefiltert werden
Führen Sie an der Eingabeaufforderung des WSD-Debugclients den folgenden Befehl aus: ip print
Die Liste der ip-Adressen, die gefiltert werden, wird angezeigt.
Im folgenden Verfahren wird davon ausgegangen, dass der WSD-Debugclient gestartet wurde und eine Filterung nach IP-Adresse erfolgt.
So deaktivieren Sie die Filterung
Führen Sie an der Eingabeaufforderung des WSD-Debugclients den folgenden Befehl aus: ip clear
Der gesamte Multicastdatenverkehr wird jetzt in der Debugausgabe angezeigt.