HTTP 메타데이터 교환에 일반 호스트 및 클라이언트 사용

클라이언트와 호스트가 메타데이터를 교환할 수 없는 경우 일반 호스트와 클라이언트를 사용자 지정 호스트 및 클라이언트로 대체하여 문제를 해결할 수 있습니다. WSD 디버그 클라이언트 출력에 디바이스 주소 또는 디바이스 메타데이터가 표시되지 않으면 제공된 전송 주소 또는 네트워크 환경으로 인해 오류가 발생할 수 있습니다. 일반 호스트 및 클라이언트에 대한 자세한 내용은 디버깅 도구를 참조하세요.

일반 호스트와 클라이언트가 WS-Discovery 및 HTTP 메타데이터 교환을 모두 완료할 수 있는 것으로 확인된 경우 이 진단 절차를 건너뛸 수 있으며 WinHTTP 로깅을 사용하여 트래픽 확인을 위한 절차에 따라 문제 해결을 계속할 수 있습니다.

호스트 또는 클라이언트가 PC에서 실행되는 애플리케이션인 경우 일반 호스트 또는 클라이언트는 실제 호스트 또는 클라이언트와 동일한 보안 컨텍스트에서 실행되어야 합니다. 예를 들어 실제 호스트 또는 클라이언트가 관리자로 실행되는 경우 일반 호스트 또는 클라이언트는 관리자 권한으로 실행되어야 합니다. 또한 호스트 또는 클라이언트가 독립 실행형 디바이스인 경우 무제한 네트워크 액세스(예: 관리자 권한으로 실행)를 보장하는 보안 컨텍스트에서 일반 호스트 또는 클라이언트를 실행하는 PC로 완전히 대체되어야 합니다.

일반 호스트 및 클라이언트를 사용하여 HTTP 메타데이터 교환 문제 해결

  1. 명령 프롬프트 창을 엽니다.

  2. 다음 명령을 실행합니다. WSDDebug_host.exe /mode 메타데이터 /start

    참고

    Windows 보안 경고 대화 상자가 나타날 수 있습니다. 그렇다면 차단 해제 를 클릭하여 WSD 디버그 호스트를 실행할 수 있도록 합니다.

     

    이 명령은 다음과 유사한 출력을 생성합니다. 디바이스 ID를 기록해 둡니다.

    WSDAPI Debug Host
    Copyright (C) Microsoft Corporation 2007.  All rights reserved.
    Device ID is urn:uuid:37f86d35-e6ac-4241-964f-1d9ae46fb366
    Host metadata>
    
  3. / mode 메타데이터 /hello off /resolveid>를WSDDebug_client.exe< 명령을 실행합니다. ID를 2단계에서 식별된 디바이스 ID로 바꿉<니다.>

    참고

    Windows 보안 경고 대화 상자가 나타날 수 있습니다. 그렇다면 차단 해제 를 클릭하여 WSD 디버그 클라이언트를 실행할 수 있도록 합니다.

     

WSD 디버그 클라이언트는 다음과 유사한 출력을 생성합니다.

WSDAPI Debug Client
Copyright (C) Microsoft Corporation 2007.  All rights reserved.
Client ID is urn:uuid:0f571af7-6b0e-4daf-8054-f2233ac27910
Hello mode is disabled
Client metadata>
*****************************************************************************
Add at 02/28/07 15:16:51
+ EPR:
  + Address:                 urn:uuid:37f86d35-e6ac-4241-964f-1d9ae46fb366
+ Types:
    (wsdp) https://schemas.xmlsoap.org/ws/2006/02/devprof:Device
+ XAddrs:
  https://[::1]:5357/37f86d35-e6ac-4241-964f-1d9ae46fb366
+ Metadata version:          2
+ Instance ID:               1
+ Probe/Resolve tag:         WSDAPI debug_client
+ Remote transport address:  [::1]:3702
+ Local transport address:   ::1
+ Local interface GUID:      42133cd4-6a70-11db-bbc9-806e6f6e6963
Client metadata>
*****************************************************************************
Getting metadata for host at 02/28/07 15:16:51:
+ Endpoint reference:
  + Address:
    urn:uuid:37f86d35-e6ac-4241-964f-1d9ae46fb366
Using xAddr: https://[::1]:5357/37f86d35-e6ac-4241-964f-1d9ae46fb366
Client metadata>
*****************************************************************************
Metadata for host:
+ Endpoint reference:
  + Address:           urn:uuid:37f86d35-e6ac-4241-964f-1d9ae46fb366
Metadata section:
  + Dialect:
    https://schemas.xmlsoap.org/ws/2006/02/devprof/ThisDevice
  + Friendly name:
    [no lang]: Debugging Host
  + Firmware version:  1.0
  + Serial number:     00000000
Metadata section:
  + Dialect:
    https://schemas.xmlsoap.org/ws/2006/02/devprof/ThisModel
  + Manufacturer:
    [no lang]: Microsoft Corporation
  + Manufacturer URL:  https://www.microsoft.com/
  + Model names:
    [no lang]: Microsoft Debugging Host
  + Model number:      https://www.microsoft.com/
End of metadata
Client metadata>

WSD 디버그 클라이언트는 많은 DPWS 디바이스가 있는 네트워크에서 많은 출력을 생성할 수 있습니다. 더 쉽게 분석할 수 있도록 출력을 파일로 리디렉션할 수 있습니다. WSD 디버그 클라이언트 프롬프트에 로그 티<파일 이름을> 입력하여 출력을 파일로 리디렉션합니다. WSD 디버그 클라이언트 프롬프트에서 로그 티스 중지 를 입력하여 출력 리디렉션을 중지할 수 있습니다.

EPR(엔드포인트 참조) 주소를 기록해 둡니다. 이 EPR 주소는 위의 2단계에서 식별된 디바이스 ID와 일치해야 합니다. 또한 WSD 디버그 클라이언트가 디바이스에 대한 메타데이터를 완전히 인쇄했는지 확인합니다. 디바이스 메타데이터는 로 Metadata for host 시작하고 로 End of metadata끝납니다.

디바이스 ID 및 디바이스 메타데이터가 WSD 디버그 클라이언트 출력에 올바르게 표시되는 경우 애플리케이션 오류는 제공된 전송 주소, 운영 체제 또는 네트워크 환경과 관련이 없을 수 있습니다. 일반 호스트 및 클라이언트를 사용자 지정 호스트 및 클라이언트로 바꾸고 WinHTTP 로깅을 사용하여 트래픽 가져오기 확인의 절차에 따라 문제 해결을 계속합니다.

디바이스 주소 및 디바이스 메타데이터가 WSD 디버그 클라이언트 출력에 표시되지 않으면 오류로 인해 다음 원인 중 하나 이상이 발생할 수 있습니다.

  • 호스트에서 보급한 전송 주소가 잘못되었거나 형식이 잘못되었습니다. WSD 디버그 클라이언트는 ProbeMatches 또는 ResolveMatches 메시지의 XAddrs 요소에 제공된 URL에서 디바이스 메타데이터를 가져오려고 시도합니다. 메타데이터 교환에 사용되는 URL은 WSD 디버그 클라이언트 출력에 구 Using xAddr접두사로 표시됩니다. 다음 예제에서는 위의 WSD 디버그 클라이언트 출력에서 메타데이터 교환에 사용되는 XAddrs를 보여 줍니다.

    Using xAddr: https://[::1]:5357/37f86d35-e6ac-4241-964f-1d9ae46fb366
    

    제공된 XAddrs가 XAddr 유효성 검사 규칙을 준수하지 않는 경우 WSD 디버그 클라이언트는 디바이스의 메타데이터를 가져올 수 없습니다.

  • 애플리케이션이 잘못된 보안 컨텍스트에서 실행되고 있습니다. 애플리케이션이 올바른 자격 증명을 사용하고 있고 클라이언트와 호스트가 네트워크에 액세스할 수 있는 충분한 권한이 있는지 확인합니다.

  • 방화벽 구성이 잘못되었습니다. 어댑터 및 방화벽 설정 검사의 지침에 따라 Windows 방화벽 설정이 올바른지, 패킷을 삭제하는 다른 규칙이 없는지 확인합니다. 오류를 재현하기 위해 클라이언트와 호스트를 "기본" 컴퓨터(도메인에 가입된 적이 없는 기본 운영 체제 설치가 있는 컴퓨터)에 복사할 수도 있습니다.

  • IPSec 정책이 애플리케이션을 차단하고 있습니다. IPSec 정책의 적용을 받지 않는 컴퓨터에 클라이언트 및 호스트를 복사하고 오류를 재현해 봅니다.

WSDAPI 진단 절차

WSDAPI 문제 해결을 사용한 시작