Freigeben über


Verwenden der WinHTTP-Protokollierung zum Überprüfen von Get Traffic

Wenn der generische Host und der Client erfolgreich sind, aber der tatsächliche Host und client weiterhin fehlschlagen, ist es möglich, dass die Metadatenanforderung nicht initiiert wird. Die WinHTTP-Protokollierung kann verwendet werden, um zu überprüfen, ob ausgehende Nachrichten ordnungsgemäß generiert und gesendet werden.

WSDAPI-basierte Clientanwendungen verwenden WinHTTP , um eine Verbindung mit Geräten herzustellen. WSDAPI-basierte Gerätehosts verwenden WinHTTP nicht. Außerdem verwenden einige Proxys von Drittanbietern WinHTTP nicht. Überspringen Sie bei der Problembehandlung für einen Host oder Proxy, der WinHTTP nicht verwendet, dieses Diagnoseverfahren, und fahren Sie mit der Problembehandlung fort, indem Sie die Verfahren unter Überprüfen von Netzwerkablaufverfolgungen für http-Metadatenaustausch ausführen.

Die WinHTTP-Protokollierung zeigt nicht den gesamten Datenverkehr auf TCP-Ebene an. Fahren Sie mit Überprüfen von Netzwerkablaufverfolgungen für DEN HTTP-Metadatenaustausch fort, wenn datenverkehrs- neben dem HTTP-Datenverkehr von Interesse ist.

So verwenden Sie die WinHTTP-Protokollierung zum Überprüfen von Datenverkehr abrufen

  1. Erfassen Sie die WinHTTP-Protokolle.
  2. Starten Sie Editor oder einen anderen Text-Editor. Der Text-Editor muss als Administrator ausgeführt werden.
  3. Öffnen Sie die WinHTTP-Protokolldatei.
  4. Überprüfen Sie, ob die erforderlichen HTTP-Anforderungen und Metadatennachrichten gesendet wurden.

Wenn eine Get-Nachricht für den Host in den WinHTTP-Protokollen gefunden wird, werden die Metadatenanforderungen erfolgreich an WinHTTP gesendet. Fahren Sie mit der Problembehandlung fort, indem Sie die Verfahren unter Überprüfen von Netzwerkablaufverfolgungen für HTTP-Metadatenaustausch ausführen.

Wenn eine Get-Nachricht für den Host in den WinHTTP-Protokollen nicht gefunden werden kann, wird die Metadatenanforderung nicht initiiert. Dies kann passieren, wenn der Host ungültige XAddrs veröffentlicht. Vergewissern Sie sich, dass die XAddrs auf dem Host den XAddr-Validierungsregeln entsprechen.

Überprüfen, ob die erforderlichen HTTP-Anforderungen und Metadatennachrichten gesendet wurden

Die folgenden Ereignisse müssen für einen erfolgreichen Metadatenaustausch auftreten:

  • Der WSDAPI-Client generiert eine ausgehende HTTP-Anforderung. Diese Anforderung wird an den WSDAPI-Host gesendet.
  • Der Client sendet eine Get-Nachricht an den Host.

Diese Ereignisse werden in den WinHTTP-Protokollen erfasst.

Der folgende WinHTTP-Protokolldateiausschnitt zeigt eine ausgehende HTTP-Anforderung, die von einem WSDAPI-Client generiert wird.

16:51:47.893 ::*0000004* :: WinHttpSendRequest(0x36aae0, "", 0, 0x0, 0, 658, 0)
16:51:47.893 ::*0000004* :: WinHttpSendRequest() returning TRUE
16:51:47.897 ::*0000004* :: sending data:
16:51:47.897 ::*0000004* :: 226 (0xe2) bytes
16:51:47.897 ::*0000004* :: <<<<-------- HTTP stream follows below ----------------------------------------------->>>>
16:51:47.897 ::*0000004* :: POST /dbe17c74-3b21-4f52-addc-b84b444f73a0 HTTP/1.1
16:51:47.897 ::*0000004* :: Content-Type: application/soap+xml
16:51:47.897 ::*0000004* :: User-Agent: WSDAPI
16:51:47.897 ::*0000004* :: Host: 192.168.0.1:5357
16:51:47.897 ::*0000004* :: Content-Length: 658
16:51:47.897 ::*0000004* :: Connection: Keep-Alive
16:51:47.897 ::*0000004* :: Cache-Control: no-cache
16:51:47.897 ::*0000004* :: Pragma: no-cache
16:51:47.897 ::*0000004* :: 
16:51:47.897 ::*0000004* :: 
16:51:47.897 ::*0000004* :: <<<<-------- End ----------------------------------------------->>>>

Der folgende WinHTTP-Protokolldateiausschnitt zeigt eine Get-Nachricht an. Diese Meldung sollte sofort auf die HTTP-Anforderung folgen.

16:51:47.898 ::*0000004* :: WinHttpWriteData(0x36aae0, 0x11aa7c4, 658, 0x0)
16:51:47.899 ::*0000004* :: sending data:
16:51:47.899 ::*0000004* :: 658 (0x292) bytes
16:51:47.899 ::*0000004* :: <<<<-------- HTTP stream follows below ----------------------------------------------->>>>
16:51:47.899 ::*0000004* :: <?xml version="1.0" encoding="utf-8" ?>
16:51:47.899 ::*0000004* :: <soap:Envelope xmlns:soap="https://www.w3.org/2003/05/soap-envelope" xmlns:wsa="https://schemas.xmlsoap.org/ws/2004/08/addressing"><soap:Header><wsa:To>urn:uuid:dbe17c74-3b21-4f52-addc-b84b444f73a0</wsa:To><wsa:Action>https://schemas.xmlsoap.org/ws/2004/09/transfer/Get</wsa:Action><wsa:MessageID>urn:uuid:8506ac50-3646-4621-9680-86f484d87909</wsa:MessageID><wsa:ReplyTo><wsa:Address>https://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address></wsa:ReplyTo><wsa:From><wsa:Address>urn:uuid:b32467b5-e7ee-4ae3-8a8e-f5aa417c23b6</wsa:Address></wsa:From></soap:Header><soap:Body></soap:Body></soap:Envelope>
16:51:47.899 ::*0000004* :: <<<<-------- End ----------------------------------------------->>>>
16:51:47.899 ::*0000004* :: WinHttpWriteData() returning TRUE

Das Action-Element (<wsa:Action>https://schemas.xmlsoap.org/ws/2004/09/transfer/Get</wsa:Action>) identifiziert die Nachricht als Get-Nachricht . Vergewissern Sie sich, dass der Wert des To-Elements (z. B. ) mit der geräte-ID übereinstimmt, <wsa:To>urn:uuid:dbe17c74-3b21-4f52-addc-b84b444f73a0</wsa:To>die vom Host in den ursprünglichen UDP-WS-Discovery Nachrichten angekündigt wurde. Die vom Host angekündigte Geräte-ID kann mithilfe des WSD-Debughosts überprüft werden. Weitere Informationen finden Sie unter Verwenden eines generischen Hosts und Clients für UDP WS-Discovery.

Darüber hinaus finden Sie die Antwort des Hosts auf die Metadatenanforderung in den WinHTTP-Protokollen des Clients. Der Host generiert eine GetResponse-Nachricht als Antwort auf die Get-Nachricht des Clients.

Der folgende WinHTTP-Protokolldateiausschnitt zeigt eine eingehende GetResponse-Nachricht , die von einem WSDAPI-Client empfangen wird.

16:51:47.899 ::*0000004* :: WinHttpReceiveResponse(0x36aae0, 0x0)
16:51:47.899 ::*0000004* :: WinHttpReceiveResponse() returning TRUE
16:51:47.899 ::*Session* :: DllMain(0x73fc0000, DLL_THREAD_ATTACH, 0x0)
16:51:47.902 ::*0000004* :: received data:
16:51:47.902 ::*0000004* :: 1024 (0x400) bytes
16:51:47.902 ::*0000004* :: <<<<-------- HTTP stream follows below ----------------------------------------------->>>>
16:51:47.902 ::*0000004* :: HTTP/1.1 200 
16:51:47.902 ::*0000004* :: Content-Type: application/soap+xml
16:51:47.902 ::*0000004* :: Server: Microsoft-HTTPAPI/2.0
16:51:47.902 ::*0000004* :: Date: Fri, 15 Jun 2007 23:51:47 GMT
16:51:47.905 ::*0000004* :: Content-Length: 2228
16:51:47.905 ::*0000004* :: 
16:51:47.905 ::*0000004* :: <?xml version="1.0" encoding="utf-8" ?>
16:51:47.905 ::*0000004* :: <soap:Envelope xmlns:soap="https://www.w3.org/2003/05/soap-envelope" xmlns:wsa="https://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsx="https://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsdp="https://schemas.xmlsoap.org/ws/2006/02/devprof" xmlns:un0="http://schemas.microsoft.com/windows/pnpx/2005/10" xmlns:pub="http://schemas.microsoft.com/windows/pub/2005/07"><soap:Header><wsa:To>https://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To><wsa:Action>https://schemas.xmlsoap.org/ws/2004/09/transfer/GetResponse</wsa:Action><wsa:MessageID>urn:uuid:2884cbcc-2848-4c35-9327-5ab5451a8729</wsa:MessageID><wsa:RelatesTo>urn:uuid:8506ac50-3646-4621-9680-86f484d87909</wsa:RelatesTo></soap:Header><soap:Body><wsx:Metadata><wsx:MetadataSection Dialect="https://schemas.xmlsoap.org/ws/2006/02/devprof/ThisDevice"><wsdp:ThisDevice><wsd
16:51:47.905 ::*0000004* :: <<<<-------- End ----------------------------------------------->>>>

Das Action-Element (<wsa:Action>https://schemas.xmlsoap.org/ws/2004/09/transfer/GetResponse</wsa:Action>) identifiziert die Nachricht als GetResponse-Nachricht . Stellen Sie sicher, dass der Wert des RelatesTo-Elements der GetResponse-Nachricht mit dem Wert des MessageID-Elements der Get-Nachricht übereinstimmt. In diesem Beispiel entspricht der Wert des RelatesTo-Elements (<wsa:RelatesTo>urn:uuid:8506ac50-3646-4621-9680-86f484d87909</wsa:RelatesTo>) dem Wert des MessageID-Elements der Get-Nachricht (<wsa:MessageID>urn:uuid:8506ac50-3646-4621-9680-86f484d87909</wsa:MessageID>).

WinHTTP

Erfassen von WinHTTP-Protokollen

WSDAPI-Diagnoseverfahren

Erste Schritte mit WSDAPI-Problembehandlung