Поделиться через


Устранение неполадок с другими приложениями WSDAPI

Приложения могут напрямую вызывать интерфейсы и функции WSDAPI для выполнения обнаружения устройств и обмена метаданными. Шаблоны сообщений, используемые этими приложениями, различаются.

Цель этого руководства по устранению неполадок — помочь разработчикам приложений WSDAPI успешно реализовать прокси-сервер устройства. Это руководство не предназначено для устранения неполадок всех аспектов WSDAPI. Если прокси-сервер устройства успешно создан, и клиент и хост могут видеть друг друга в сети, это руководство не может устранить проблемы приложения. Чтобы устранить эти проблемы с приложением, следуйте инструкциям в Включение трассировки WSDAPI и обратитесь в службу поддержки Майкрософт для дальнейшей помощи.

Устранение неполадок клиентов, вызывающих WSDCreateDeviceProxy

Приложения вызывают WSDCreateDeviceProxy для создания и инициализации экземпляра интерфейса IWSDeviceProxy. Этот прокси-объект устройства можно использовать для объявления служб на устройстве, а также для обмена метаданными.

Приложение, вызывающее WSDCreateDeviceProxy, всегда использует следующие сообщения.

Приложение, вызывающее WSDCreateDeviceProxy иногда использует следующие сообщения.

Resolve и 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 для проверки Get-трафика.
  7. проверьте сетевые трассировки на наличие обмена HTTP-метаданными.

Убедитесь, что сообщения Разрешение и ResolveMatches создаются и соответствуют требованиям к трафику. Нет необходимости искать сообщения пробы или ProbeMatches сообщения в выходных данных клиента отладки WSD или в сетевых трассировках.

Устранение неполадок у клиентов, вызывающих WSDCreateDeviceProxyAdvanced

Приложения вызывают WSDCreateDeviceProxyAdvanced для создания и инициализации экземпляра интерфейса IWSDeviceProxy. В отличие от WSDCreateDeviceProxy, WSDCreateDeviceProxyAdvanced имеет параметр pDeviceAddress, используемый для определения адреса транспорта устройства. Если указан этот адрес транспорта, то разрешение логических адресов не требуется, и сообщения Resolve и ResolveMatches не генерируются.

Если pDeviceAddress задано значение NULL и pszDeviceId является логическим адресом, требуется разрешение адреса и создаются сообщения Resolve и ResolveMatches.

Для выявления проблем с вызовом приложения, которое использует WSDCreateDeviceProxyAdvanced с параметром pDeviceAddress, который не равенNULL, следует использовать следующие диагностические процедуры (в указанном порядке). Эти процедуры также можно использовать, если pDeviceAddressNULL и pszDeviceId является физическим адресом.

  1. проверьте параметры адаптера и брандмауэра.
  2. Использовать общий хост и клиент для обмена HTTP метаданными.
  3. Используйте ведение журнала WinHTTP для проверки трафика.
  4. Проверьте трассировки сети для обмена метаданными HTTP.

Для помощи в выявлении проблем с приложением, которое вызывает функцию WSDCreateDeviceProxyAdvanced с pDeviceAddress, заданным как NULL, и с pszDeviceId, установленным на логический адрес, следует использовать следующие диагностические процедуры (в указанном порядке).

  1. проверьте параметры адаптера и брандмауэра.
  2. Использовать универсальный хост и клиент дляобнаружения UDP WS-Discovery.
  3. Использовать WSD Debug Client для проверки многоадресного трафика.
  4. проверьте трассировку сети дляобнаружения WSP.
  5. Использовать универсальный сервер и клиент для обмена метаданными HTTP.
  6. Использовать ведение журнала WinHTTP для проверки получениятрафика.
  7. изучите сетевые трассировки для обмена метаданными HTTP.

Убедитесь, что сообщения Resolve и ResolveMatches генерируются и соответствуют требованиям к трафику. Нет необходимости искать сообщения пробы или ProbeMatches сообщения в выходных данных клиента отладки WSD или в сетевых трассировках.

Устранение неполадок клиентов с помощью интерфейса IWSDiscoveryProvider

Приложения, вызывающие интерфейс IWSDiscoveryProvider, не выполняют обмен метаданными. Этот интерфейс используется только для обнаружения. Шаблоны сообщений и процедуры устранения неполадок отличаются для каждого метода, вызываемого в интерфейсе IWSDiscoveryProvider.

Когда приложение вызывает IWSDiscoveryProvider::SearchByType, создается сообщение пробное . Сообщение "Probe" отправляется через мультикаст UDP на порт 3702. В ответ создается сообщение ProbeMatches. Сообщение ProbeMatches отправляется одноадресной рассылкой UDP и происходит из порта 3702.

Когда приложение вызывает IWSDiscoveryProvider::SearchById, создается сообщение Resolve. Сообщение Resolve отправляется многоадресной рассылкой UDP на порт 3702. В ответ создается сообщение ResolveMatches. Решение ResolveMatches отправляется одноадресной рассылкой UDP и происходит из порта 3702.

Для идентификации проблем при вызове приложения с использованием следующих диагностических процедур (в указанном порядке): IWSDiscoveryProvider::SearchByType или IWSDiscoveryProvider::SearchById. Убедитесь, что сообщения, созданные вызываемым API, удовлетворяют требованиям к трафику.

  1. проверьте параметры адаптера и брандмауэра.
  2. Использовать универсальный узел и клиент для WS-Discovery по UDP.
  3. Используйте отладочный клиент WSD для проверки многоадресного трафика.
  4. Проверьте трассировку сети дляWS-Discovery.

Если приложение вызывает IWSDiscoveryProvider::SearchByAddress, то это приложение для направленного обнаружения. Дополнительные сведения об устранении неполадок см. в разделе Устранение неполадок приложений с использованием направленного поиска.

Начало работы с устранением неполадок в WSDAPI