Udostępnij przez


Rozwiązywanie problemów z innymi aplikacjami WSDAPI

Aplikacje mogą bezpośrednio wywoływać interfejsy i funkcje WSDAPI w celu przeprowadzania odnajdywania urządzeń i wymiany metadanych. Wzorce komunikatów używane przez te aplikacje różnią się.

Celem tego przewodnika rozwiązywania problemów jest ułatwienie deweloperom aplikacji WSDAPI pomyślnego zaimplementowania serwera proxy urządzenia. Ten przewodnik nie jest przeznaczony do rozwiązywania problemów ze wszystkimi aspektami interfejsu WSDAPI. Jeśli serwer proxy urządzenia został pomyślnie utworzony, a klient i host mogą zobaczyć się nawzajem w sieci, ten przewodnik nie może rozwiązać problemów aplikacji. Aby rozwiązać te problemy z aplikacją, postępuj zgodnie z instrukcjami w Włączanie śledzenia WSDAPI i skontaktuj się z pomocą techniczną firmy Microsoft, aby uzyskać dalszą pomoc.

Rozwiązywanie problemów z klientami wywołującymi funkcję WSDCreateDeviceProxy

Aplikacje wywołają WSDCreateDeviceProxy w celu utworzenia i zainicjowania wystąpienia interfejsu IWSDDeviceProxy. Ten obiekt serwera proxy urządzenia może służyć do anonsowania usług na urządzeniu, a także do wymiany metadanych.

Aplikacja wywołująca WSDCreateDeviceProxy zawsze używa następujących komunikatów.

Aplikacja wywołująca WSDCreateDeviceProxy czasami używa następujących komunikatów.

Resolve i ResolveMatches komunikaty są generowane, gdy adres urządzenia logicznego (czyli adres urządzenia w formie urn:uuid:{guid}) jest przekazywany do pszDeviceId. Te komunikaty nie są generowane, gdy adres urządzenia fizycznego jest przekazywany do pszDeviceId. Gdy są używane komunikaty Resolve i ResolveMatches, są wysyłane przed komunikatami Get i GetResponse.

Poniższe procedury diagnostyczne powinny być używane (w podanej kolejności) w celu ułatwienia identyfikacji problemów z aplikacją wywołującą WSDCreateDeviceProxy z adresem urządzenia fizycznego.

  1. Sprawdzanie ustawień adaptera i zapory.
  2. Użyj ogólnego hosta i klienta do wymiany metadanych HTTP.
  3. użyj rejestrowania WinHTTP, aby zweryfikować ruch.
  4. Sprawdź ślady sieci pod kątem wymiany metadanych HTTP.

Poniższe procedury diagnostyczne powinny być używane (w kolejności) w celu pomocy w identyfikacji problemów z aplikacją wywołującą WSDCreateDeviceProxy z adresem urządzenia logicznego.

  1. Sprawdzanie ustawień adaptera i zapory.
  2. Użyj uniwersalnych komponentów hosta i klienta dla UDP WS-Discovery.
  3. Użyj klienta do debugowania WSD, aby zweryfikować ruch multicast.
  4. Analizuj ślady sieciowe dlaUDP WS-Discovery.
  5. Użyj ogólnego hosta i klienta do wymiany metadanych HTTP.
  6. Użyj rejestrowania WinHTTP, aby zweryfikować ruch.
  7. Sprawdź ślady sieci pod kątem wymiany metadanych HTTP.

Sprawdź, czy generowane są komunikaty Resolve i ResolveMatches oraz czy spełniają wymagania dotyczące ruchu. Nie trzeba szukać komunikatów Probe lub ProbeMatches w danych wyjściowych klienta Debugowania WSD lub w śladach sieciowych.

Rozwiązywanie problemów z klientami wywołującymi WSDCreateDeviceProxyAdvanced

Aplikacje wywołają WSDCreateDeviceProxyAdvanced w celu utworzenia i zainicjowania wystąpienia interfejsu IWSDDeviceProxy. W przeciwieństwie do WSDCreateDeviceProxy, WSDCreateDeviceProxyAdvanced ma parametr pDeviceAddress używany do definiowania adresu transportu urządzenia. Jeśli ten adres transportu jest określony, rozwiązywanie adresów logicznych nie jest wymagane, a komunikaty Rozwiązanie i DopasowanieRozwiązań nie są generowane.

Jeśli pDeviceAddress jest ustawiona na wartość NULL i pszDeviceId jest adresem logicznym, konieczne jest rozwiązywanie adresów i generowane są komunikaty Resolve i ResolveMatches.

Poniższe procedury diagnostyczne powinny być używane (w podanej kolejności), aby pomóc w identyfikacji problemów z aplikacją wywołującą WSDCreateDeviceProxyAdvanced z nie-NULLpDeviceAddress parametrem. Te procedury mogą być również używane, gdy pDeviceAddress jest null, a pszDeviceId jest adresem fizycznym.

  1. Sprawdzanie ustawień adaptera i zapory.
  2. Użyj ogólnego hosta i klienta do wymiany metadanych HTTP.
  3. Użyj rejestrowania WinHTTP do weryfikacji ruchu Get.
  4. Inspekcja śladów sieci pod kątem wymiany metadanych HTTP

Poniższe procedury diagnostyczne powinny być stosowane (w kolejności), aby pomóc w identyfikacji problemów z aplikacją wywołującą WSDCreateDeviceProxyAdvanced, gdzie pDeviceAddress jest ustawione na NULL, a pszDeviceId jest ustawiony na adres logiczny.

  1. Sprawdzanie ustawień adaptera i zapory.
  2. Użyj ogólnego hosta i klienta do WS-Discovery UDP.
  3. użyj klienta debugowania WSD, aby zweryfikować ruch multicast.
  4. Sprawdź ślady sieciowe dla odkrywania UDP WS-Discovery.
  5. Użyj ogólnego hosta i klienta do wymiany metadanych HTTP.
  6. Skorzystaj z rejestrowania WinHTTP, aby zweryfikować ruch GET.
  7. Sprawdź ślady sieciowe dla wymiany metadanych HTTP.

Sprawdź, czy komunikaty Resolve i ResolveMatches są generowane i spełniają wymagania dotyczące ruchu. Nie trzeba szukać sondy lub probeMatches komunikatów w danych wyjściowych klienta debugowania WSD lub w śladach sieci.

Rozwiązywanie problemów z klientami przy użyciu interfejsu IWSDiscoveryProvider

Aplikacje wywołujące interfejs IWSDiscoveryProvider nie wykonują wymiany metadanych. Ten interfejs jest używany tylko do odnajdywania. Wzorce komunikatów i procedury rozwiązywania problemów są różne dla każdej metody wywoływanej w interfejsie IWSDiscoveryProvider.

Gdy aplikacja wywołuje IWSDiscoveryProvider::SearchByType, generowany jest komunikat sondy . Komunikat sondy jest wysyłany przez multiemisję UDP do portu 3702. W odpowiedzi zostanie wygenerowany komunikat ProbeMatches. Komunikat ProbeMatches jest wysyłany przez unicast UDP i pochodzi z portu 3702.

Gdy aplikacja wywołuje IWSDiscoveryProvider::SearchById, generowany jest komunikat Rozwiąż. Komunikat Rozwiąż jest wysyłany przez multiemisję UDP do portu 3702. W odpowiedzi generowany jest komunikat ResolveMatches. ResolveMatches jest wysyłany przez unicast UDP i pochodzi z portu 3702.

Poniższe procedury diagnostyczne powinny być używane (w celu ułatwienia identyfikacji problemów z aplikacją wywołującą IWSDiscoveryProvider::SearchByType lub IWSDiscoveryProvider::SearchById. Sprawdź, czy komunikaty generowane przez wywoływany interfejs API spełniają wymagania dotyczące ruchu.

  1. Sprawdzanie ustawień adaptera i zapory.
  2. Użyj ogólnego hosta i klienta do protokołu UDP WS-Discovery.
  3. użyj klienta debugowania WSD, aby zweryfikować ruch multicastowy.
  4. Sprawdź ślady sieciowedla UDP WS-Discovery.

Jeśli aplikacja wywołuje IWSDiscoveryProvider::SearchByAddress, to jest ona aplikacją do odkrywania kierowanego. Aby uzyskać więcej informacji na temat rozwiązywania problemów, zobacz Rozwiązywanie problemów z aplikacjami za pomocą ukierunkowanego odkrywania.

wprowadzenie do rozwiązywania problemów z interfejsem WSDAPI