다음을 통해 공유


다른 WSDAPI 애플리케이션 문제 해결

애플리케이션은 WSDAPI 인터페이스 및 함수를 직접 호출하여 디바이스 검색 및 메타데이터 교환을 수행할 수 있습니다. 이러한 애플리케이션에서 사용하는 메시지 패턴은 다양합니다.

이 문제 해결 가이드의 목표는 WSDAPI 애플리케이션 개발자가 디바이스 프록시를 성공적으로 구현할 수 있도록 돕는 것입니다. 이 가이드는 WSDAPI의 모든 측면을 해결하는 데 도움이 되지 않습니다. 디바이스 프록시가 성공적으로 만들어졌고 클라이언트와 호스트가 네트워크에서 서로를 볼 수 있는 경우 이 가이드는 애플리케이션의 문제를 해결할 수 없습니다. 이러한 애플리케이션 문제를 해결하려면 WSDAPI 추적 사용하도록 설정의 지침을 따르고 추가 지원을 받으려면 Microsoft 지원에 문의하세요.

WSDCreateDeviceProxy를 호출하는 클라이언트 문제 해결

애플리케이션은 WSDCreateDeviceProxy 호출하여 IWSDDeviceProxy 인터페이스의 인스턴스를 만들고 초기화합니다. 이 디바이스 프록시 개체는 디바이스에서 서비스를 보급하고 메타데이터를 교환하는 데 사용할 수 있습니다.

WSDCreateDeviceProxy 호출하는 애플리케이션은 항상 다음 메시지를 사용합니다.

WSDCreateDeviceProxy 호출하는 애플리케이션은 경우에 따라 다음 메시지를 사용합니다.

ResolveMatches 메시지는 논리적 장치 주소(즉, urn:uuid:{guid} 형식의 장치 주소)가 pszDeviceId에 전달될 때 생성됩니다. 이러한 메시지는 실제 디바이스 주소가 pszDeviceId 전달될 때 생성되지 않습니다. Resolve 및 ResolveMatches 메시지가 사용되면 Get 메시지와 GetResponse 메시지보다 먼저 전송됩니다.

물리적 디바이스 주소로 WSDCreateDeviceProxy 호출하는 애플리케이션의 문제를 식별하기 위해 다음 진단 절차를 순서대로 사용해야 합니다.

  1. 어댑터 및 방화벽 설정검사합니다.
  2. HTTP 메타데이터 교환일반 호스트 및 클라이언트를 사용합니다.
  3. WinHTTP 로깅을 사용하여 GET 트래픽을 확인합니다.
  4. HTTP 메타데이터 교환대한 네트워크 추적을 검사합니다.

논리 디바이스 주소로 WSDCreateDeviceProxy 호출하는 애플리케이션의 문제를 식별하기 위해 다음 진단 절차를 순서대로 사용해야 합니다.

  1. 어댑터 및 방화벽 설정검사합니다.
  2. UDP WS-Discovery에 일반 호스트 및 클라이언트를 사용하세요.
  3. WSD 디버그 클라이언트를 사용하여 멀티캐스트 트래픽확인합니다.
  4. UDP WS-Discovery대한 네트워크 추적을 검사합니다.
  5. HTTP 메타데이터 교환일반 호스트 및 클라이언트를 사용합니다.
  6. WinHTTP 로깅을 사용하여 트래픽을 확인합니다.
  7. HTTP 메타데이터 교환대한 네트워크 추적을 검사합니다.

ResolveResolveMatches 메시지가 생성되고 트래픽 요구 사항을 충족하는지 검증합니다. WSD 디버그 클라이언트 출력 또는 네트워크 추적에서 Probe 또는 ProbeMatches 메시지를 찾을 필요는 없습니다.

WSDCreateDeviceProxyAdvanced를 호출하는 클라이언트 문제 해결

애플리케이션은 WSDCreateDeviceProxyAdvanced 호출하여 IWSDDeviceProxy 인터페이스의 인스턴스를 만들고 초기화합니다. WSDCreateDeviceProxy달리 WSDCreateDeviceProxyAdvanced 디바이스 전송 주소를 정의하는 데 사용되는 pDeviceAddress 매개 변수가 있습니다. 이 전송 주소를 지정하면 논리 주소 결정을 할 필요가 없으며, 결정ResolveMatches 메시지가 생성되지 않습니다.

pDeviceAddressNULL로 설정되고 pszDeviceId가 논리 주소인 경우, 주소 확인이 필요하며 ResolveResolveMatches 메시지가 생성됩니다.

NULLpDeviceAddress 매개 변수를 사용하여 WSDCreateDeviceProxyAdvanced 호출하는 애플리케이션의 문제를 식별하기 위해 다음 진단 절차를 사용해야 합니다. 이러한 프로시저는 pDeviceAddress NULL pszDeviceId 실제 주소인 경우에도 사용할 수 있습니다.

  1. 어댑터 및 방화벽 설정검사합니다.
  2. HTTP 메타데이터 교환일반 호스트 및 클라이언트를 사용합니다.
  3. WinHTTP 로깅을 사용하여 트래픽가져오기를 확인합니다.
  4. HTTP 메타데이터 교환대한 네트워크 추적을 검사합니다.

애플리케이션이 WSDCreateDeviceProxyAdvancedpDeviceAddressNULL로 설정하고 pszDeviceId를 논리적 주소로 설정하여 호출했을 때 발생하는 문제를 식별하기 위해 다음의 진단 절차를 순서대로 사용해야 합니다.

  1. 어댑터 및 방화벽 설정검사합니다.
  2. UDP WS-Discovery일반 호스트 및 클라이언트를 사용합니다.
  3. WSD 디버그 클라이언트를 사용하여 멀티캐스트 트래픽확인합니다.
  4. UDP WS-Discovery대한 네트워크 추적을 검사합니다.
  5. HTTP 메타데이터 교환일반 호스트 및 클라이언트를 사용합니다.
  6. WinHTTP 로깅을 사용하여 트래픽을 수신하는 것을 확인합니다.
  7. HTTP 메타데이터 교환대한 네트워크 추적을 검사합니다.

ResolveResolveMatches 메시지가 생성되고 트래픽 요구 사항을 충족하는지 확인합니다. WSD 디버그 클라이언트 출력 또는 네트워크 추적에서 Probe 또는 ProbeMatches 메시지를 찾을 필요는 없습니다.

IWSDiscoveryProvider 인터페이스를 사용하여 클라이언트 문제 해결

IWSDiscoveryProvider 인터페이스로 호출하는 애플리케이션은 메타데이터 교환을 수행하지 않습니다. 이 인터페이스는 검색에만 사용됩니다. 메시지 패턴 및 문제 해결 절차는 IWSDiscoveryProvider 인터페이스에서 호출되는 각 메서드마다 다릅니다.

애플리케이션이 IWSDiscoveryProvider::SearchByType호출하면 Probe 메시지가 생성됩니다. 프로브 메시지는 UDP 멀티캐스트에서 포트 3702로 전송됩니다. ProbeMatches 메시지가 응답으로 생성됩니다. ProbeMatches 메시지는 UDP 유니캐스트에서 전송되며 포트 3702에서 시작됩니다.

애플리케이션이 IWSDiscoveryProvider::SearchById를 호출하면 해결 메시지가 생성됩니다. 해결 메시지는 UDP 멀티캐스트에서 포트 3702로 전송됩니다. ResolveMatches 메시지가 응답으로 생성됩니다. ResolveMatches는 UDP 유니캐스트에서 전송되며 포트 3702에서 시작됩니다.

IWSDiscoveryProvider::SearchByType또는 IWSDiscoveryProvider::SearchById호출하는 애플리케이션의 문제를 식별하기 위해 다음 진단 절차를 순서대로 사용해야 합니다. 호출된 API에서 생성된 메시지가 트래픽 요구 사항을 충족하는지 확인합니다.

  1. 어댑터 및 방화벽 설정검사합니다.
  2. 일반 호스트 및 클라이언트를 사용하여 UDP WS-Discovery를 수행합니다.
  3. WSD 디버그 클라이언트를 사용하여 멀티캐스트 트래픽확인합니다.
  4. UDP WS-Discovery대한 네트워크 추적을 검사합니다.

애플리케이션이 IWSDiscoveryProvider::SearchByAddress호출하는 경우 직접 검색 애플리케이션입니다. 자세한 문제 해결 정보는 Directed Discovery사용하여 애플리케이션 문제 해결을 참조하세요.

WSDAPI 문제 해결 시작하기