Dela via


Använda WinHTTP-loggning för att verifiera GET-trafik

Om den generiska värden och klienten lyckas men den verkliga värden och klienten fortfarande misslyckas, är det möjligt att metadatabegäran inte initieras. WinHTTP loggning kan användas för att verifiera att utgående meddelanden genereras och skickas korrekt.

WSDAPI-baserade klientprogram använder WinHTTP- för att ansluta till enheter. WSDAPI-baserade enhetsvärdar använder inte WinHTTP. Vissa proxyservrar från tredje part använder inte Heller WinHTTP. När du felsöker en värd eller proxy som inte använder WinHTTP hoppar du över den här diagnostikproceduren och fortsätter felsökningen genom att följa procedurerna i Inspektera nätverksspårningar för HTTP Metadata Exchange.

WinHTTP loggning visar inte all trafik över TCP-nivå. Hoppa till Inspektera nätverksspårningar för HTTP Metadata Exchange om trafik utöver HTTP-trafiken är av intresse.

För att använda WinHTTP-loggning för att verifiera GET-trafik

  1. Avbilda WinHTTP-loggarna.
  2. Starta Anteckningar eller en annan textredigerare. Textredigeraren måste köras som administratör.
  3. Öppna WinHTTP-loggfilen.
  4. Kontrollera att nödvändiga HTTP-begäranden och metadatameddelanden har skickats.

Om ett Hämta-meddelande för värden hittas i WinHTTP-loggarna skickas metadatabegäranden framgångsrikt till WinHTTP. Fortsätt felsökningen genom att följa procedurerna i Inspektera nätverksspårningar för HTTP Metadata Exchange.

Om det inte går att hitta ett Get-meddelande för värden i WinHTTP-loggarna initieras inte metadatabegäran. Detta kan inträffa när värden publicerar ogiltiga XAddrs. Kontrollera att XAddrs på värden överensstämmer med XAddr-verifieringsreglerna .

Verifiera att nödvändiga HTTP-begäranden och metadatameddelanden har skickats

Följande händelser måste inträffa för lyckat metadatautbyte:

  • WSDAPI-klienten genererar en utgående HTTP-begäran. Den här begäran skickas till WSDAPI-värden.
  • Klienten skickar ett Get-meddelande till värden.

Dessa händelser registreras i WinHTTP-loggarna.

Följande WinHTTP-loggfilfragment visar en utgående HTTP-begäran som genereras av en WSDAPI-klient.

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 ----------------------------------------------->>>>

Följande WinHTTP-loggfilfragment visar ett Get-meddelande. Det här meddelandet bör omedelbart följa HTTP-begäran.

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

Elementet Action (<wsa:Action>https://schemas.xmlsoap.org/ws/2004/09/transfer/Get</wsa:Action>) identifierar meddelandet som ett Hämta meddelande. Kontrollera att värdet för elementet to (till exempel <wsa:To>urn:uuid:dbe17c74-3b21-4f52-addc-b84b444f73a0</wsa:To>) matchar enhets-ID:t som värden sänder ut i de ursprungliga UDP-WS-Discovery-meddelandena. Enhets-ID som tillkännages av värden kan kontrolleras med hjälp av WSD Debug Host. Mer information finns i Använda en Generisk Värd och Klient för UDP WS-Discovery.

Dessutom finns värdens svar på metadatabegäran i klientens WinHTTP-loggar. Värden genererar ett GetResponse--meddelande som svar på klientens Get--meddelande.

Följande WinHTTP-loggfilfragment visar ett inkommande GetResponse- meddelande som tas emot av en WSDAPI-klient.

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 ----------------------------------------------->>>>

Elementet Action (<wsa:Action>https://schemas.xmlsoap.org/ws/2004/09/transfer/GetResponse</wsa:Action>) identifierar meddelandet som ett GetResponse- meddelande. Kontrollera att värdet för elementet RelatesTo i GetResponse-meddelandet matchar värdet för MessageID-elementet i meddelandet Get. I det här exemplet matchar värdet för elementet RelatesTo (<wsa:RelatesTo>urn:uuid:8506ac50-3646-4621-9680-86f484d87909</wsa:RelatesTo>) värdet för elementet MessageID i Get-meddelandet (<wsa:MessageID>urn:uuid:8506ac50-3646-4621-9680-86f484d87909</wsa:MessageID>).

WinHTTP

samla in WinHTTP-loggar

WSDAPI-diagnostikprocedurer

Komma igång med WSDAPI-felsökning