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

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

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

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

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

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

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

해결ResolveMatches 메시지는 논리 디바이스 주소(즉, urn:uuid:{guid}형식의 디바이스 주소)가 pszDeviceId에 전달될 때 생성됩니다. 이러한 메시지는 물리적 디바이스 주소가 pszDeviceId에 전달될 때 생성되지 않습니다. Resolve 및 ResolveMatches 메시지를 사용하면 GetGetResponse 메시지 앞에 전송됩니다.

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

  1. 어댑터 및 방화벽 설정을 검사합니다.
  2. HTTP 메타데이터 교환에 일반 호스트 및 클라이언트를 사용합니다.
  3. WinHTTP 로깅을 사용하여 트래픽 가져오기를 확인합니다.
  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 인터페이스의 instance 만들고 초기화합니다. WSDCreateDeviceProxy와 달리 WSDCreateDeviceProxyAdvanced에는 디바이스 전송 주소를 정의하는 데 사용되는 pDeviceAddress 매개 변수가 있습니다. 이 전송 주소를 지정하면 논리 주소 확인이 필요하지 않으며 ResolveResolveMatches 메시지가 생성되지 않습니다.

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

다음 진단 절차를 사용하여 비 NULLpDeviceAddress 매개 변수를 사용하여 WSDCreateDeviceProxyAdvanced를 호출하는 애플리케이션의 문제를 식별할 수 있습니다. pDeviceAddressNULL이고 pszDeviceId가 실제 주소인 경우에도 이러한 절차를 사용할 수 있습니다.

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

pDeviceAddressNULL로 설정되고 pszDeviceId가 논리 주소로 설정된 WSDCreateDeviceProxyAdvanced를 호출하는 애플리케이션의 문제를 식별하기 위해 다음 진단 절차를 순서대로 사용해야 합니다.

  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을 호출하면 프로브 메시지가 생성됩니다. 프로브 메시지는 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 문제 해결을 사용한 시작