Problembehandlung für andere WSDAPI-Anwendungen

Anwendungen können WSDAPI-Schnittstellen und -Funktionen direkt aufrufen, um die Geräteermittlung und den Metadatenaustausch durchzuführen. Die von diesen Anwendungen verwendeten Nachrichtenmuster variieren.

Das Ziel dieses Leitfadens zur Problembehandlung besteht darin, WSDAPI-Anwendungsentwicklern bei der erfolgreichen Implementierung eines Geräteproxys zu helfen. Dieses Handbuch dient nicht zur Problembehandlung in allen Aspekten von WSDAPI. Wenn der Geräteproxy erfolgreich erstellt wurde und Client und Host sich im Netzwerk sehen können, kann dieses Handbuch die Probleme der Anwendung nicht beheben. Um diese Anwendungsprobleme zu beheben, befolgen Sie die Anweisungen unter Aktivieren der WSDAPI-Ablaufverfolgung , und wenden Sie sich an den Microsoft-Support, um weitere Unterstützung zu erhalten.

Problembehandlung bei Clients, die WSDCreateDeviceProxy aufrufen

Anwendungen rufen WSDCreateDeviceProxy auf, um eine instance der IWSDDeviceProxy-Schnittstelle zu erstellen und zu initialisieren. Dieses Geräteproxyobjekt kann verwendet werden, um Dienste auf einem Gerät anzukündigen und Metadaten auszutauschen.

Eine Anwendung, die WSDCreateDeviceProxy aufruft , verwendet immer die folgenden Meldungen.

Eine Anwendung, die WSDCreateDeviceProxy aufruft , verwendet manchmal die folgenden Meldungen.

Resolve- und ResolveMatches-Nachrichten werden generiert, wenn eine logische Geräteadresse (d. h. eine Geräteadresse des Formulars urn:uuid:{guid}) an pszDeviceId übergeben wird. Diese Nachrichten werden nicht generiert, wenn eine physische Geräteadresse an pszDeviceId übergeben wird. Wenn Resolve- und ResolveMatches-Nachrichten verwendet werden, werden sie vor den Get - und GetResponse-Nachrichten gesendet.

Die folgenden Diagnoseverfahren sollten (in der Reihenfolge) verwendet werden, um Probleme mit einer Anwendung zu identifizieren, die WSDCreateDeviceProxy mit einer physischen Geräteadresse aufruft.

  1. Überprüfen Sie die Adapter- und Firewalleinstellungen.
  2. Verwenden Sie einen generischen Host und Client für den HTTP-Metadatenaustausch.
  3. Verwenden Sie die WinHTTP-Protokollierung, um Datenverkehr abrufen zu überprüfen.
  4. Überprüfen Sie Netzwerkablaufverfolgungen für den Austausch von HTTP-Metadaten.

Die folgenden Diagnoseverfahren sollten (in der Reihenfolge) verwendet werden, um Probleme mit einer Anwendung zu identifizieren, die WSDCreateDeviceProxy mit einer logischen Geräteadresse aufruft.

  1. Überprüfen Sie die Adapter- und Firewalleinstellungen.
  2. Verwenden Sie einen generischen Host und Client für UDP WS-Discovery.
  3. Verwenden Sie den WSD-Debugclient, um Multicastdatenverkehr zu überprüfen.
  4. Überprüfen Sie die Netzwerkablaufverfolgungen für UDP WS-Discovery.
  5. Verwenden Sie einen generischen Host und Client für den HTTP-Metadatenaustausch.
  6. Verwenden Sie die WinHTTP-Protokollierung, um Datenverkehr abrufen zu überprüfen.
  7. Überprüfen Sie Netzwerkablaufverfolgungen für den Austausch von HTTP-Metadaten.

Vergewissern Sie sich, dass Resolve- und ResolveMatches-Nachrichten generiert werden und die Datenverkehrsanforderungen erfüllen. Es ist nicht erforderlich, in der Ausgabe des WSD-Debugclients oder in den Netzwerkablaufverfolgungen nach Test - oder ProbeMatches-Nachrichten zu suchen.

Problembehandlung bei Clients, die WSDCreateDeviceProxyAdvanced aufrufen

Anwendungen rufen WSDCreateDeviceProxyAdvanced auf, um eine instance der IWSDDeviceProxy-Schnittstelle zu erstellen und zu initialisieren. Im Gegensatz zu WSDCreateDeviceProxy verfügt WSDCreateDeviceProxyAdvanced über einen pDeviceAddress-Parameter , der zum Definieren der Gerätetransportadresse verwendet wird. Wenn diese Transportadresse angegeben ist, ist keine logische Adressauflösung erforderlich, und ResolveMatches- und ResolveMatches-Nachrichten werden nicht generiert.

Wenn pDeviceAddress auf NULL festgelegt ist und pszDeviceId eine logische Adresse ist, ist die Adressauflösung erforderlich, und ResolveMatches-Nachrichten werden generiert.

Die folgenden Diagnoseverfahren sollten (in der Reihenfolge) verwendet werden, um Probleme mit einer Anwendung zu identifizieren, die WSDCreateDeviceProxyAdvanced mit einem pDeviceAddress-Parameter ohne NULL aufruft. Diese Prozeduren können auch verwendet werden, wenn pDeviceAddressNULL und pszDeviceId eine physische Adresse ist.

  1. Überprüfen Sie die Adapter- und Firewalleinstellungen.
  2. Verwenden Sie einen generischen Host und Client für den HTTP-Metadatenaustausch.
  3. Verwenden Sie die WinHTTP-Protokollierung, um Datenverkehr abrufen zu überprüfen.
  4. Überprüfen Sie Netzwerkablaufverfolgungen für den Austausch von HTTP-Metadaten.

Die folgenden Diagnoseverfahren sollten (in der Reihenfolge) verwendet werden, um Probleme mit einer Anwendung zu identifizieren, die WSDCreateDeviceProxyAdvanced aufruft , wobei pDeviceAddress auf NULL festgelegt ist und pszDeviceId auf eine logische Adresse festgelegt ist.

  1. Überprüfen Sie die Adapter- und Firewalleinstellungen.
  2. Verwenden Sie einen generischen Host und Client für UDP WS-Discovery.
  3. Verwenden Sie den WSD-Debugclient, um Multicastdatenverkehr zu überprüfen.
  4. Überprüfen Sie die Netzwerkablaufverfolgungen für UDP WS-Discovery.
  5. Verwenden Sie einen generischen Host und Client für den HTTP-Metadatenaustausch.
  6. Verwenden Sie die WinHTTP-Protokollierung, um Datenverkehr abrufen zu überprüfen.
  7. Überprüfen Sie Netzwerkablaufverfolgungen für den Austausch von HTTP-Metadaten.

Vergewissern Sie sich, dass Resolve- und ResolveMatches-Nachrichten generiert werden und die Datenverkehrsanforderungen erfüllen. Es ist nicht erforderlich, in der Ausgabe des WSD-Debugclients oder in den Netzwerkablaufverfolgungen nach Test - oder ProbeMatches-Nachrichten zu suchen.

Problembehandlung bei Clients mithilfe der IWSDiscoveryProvider-Schnittstelle

Anwendungen, die in die IWSDiscoveryProvider-Schnittstelle aufrufen, führen keinen Metadatenaustausch durch. Diese Schnittstelle wird nur für die Ermittlung verwendet. Die Nachrichtenmuster und Problembehandlungsverfahren unterscheiden sich für jede Methode, die auf der IWSDiscoveryProvider-Schnittstelle aufgerufen wird.

Wenn eine Anwendung IWSDiscoveryProvider::SearchByType aufruft, wird eine Testmeldung generiert. Die Testnachricht wird vom UDP-Multicast an Port 3702 gesendet. Als Antwort wird eine ProbeMatches-Nachricht generiert. Die ProbeMatches-Nachricht wird von UDP Unicast gesendet und stammt von Port 3702.

Wenn eine Anwendung IWSDiscoveryProvider::SearchById aufruft, wird eine Resolve-Meldung generiert. Eine Resolve-Nachricht wird vom UDP-Multicast an Port 3702 gesendet. Als Antwort wird eine ResolveMatches-Nachricht generiert. ResolveMatches wird vom UDP-Unicast gesendet und stammt von Port 3702.

Die folgenden Diagnoseverfahren sollten (in der Reihenfolge) verwendet werden, um Probleme mit einer Anwendung zu identifizieren, die IWSDiscoveryProvider::SearchByType oder IWSDiscoveryProvider::SearchById aufruft. Vergewissern Sie sich, dass die von der aufgerufenen API generierten Nachrichten die Datenverkehrsanforderungen erfüllen.

  1. Überprüfen Sie die Adapter- und Firewalleinstellungen.
  2. Verwenden Sie einen generischen Host und Client für UDP WS-Discovery.
  3. Verwenden Sie den WSD-Debugclient, um Multicastdatenverkehr zu überprüfen.
  4. Überprüfen Sie die Netzwerkablaufverfolgungen für UDP WS-Discovery.

Wenn eine Anwendung IWSDiscoveryProvider::SearchByAddress aufruft, handelt es sich um eine gerichtete Ermittlungsanwendung. Weitere Informationen zur Problembehandlung finden Sie unter Problembehandlung bei Anwendungen mithilfe der gerichteten Ermittlung.

Erste Schritte mit WSDAPI-Problembehandlung