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


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

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

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

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

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

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

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

Сообщения Resolve и ResolveMatches создаются при передаче логического адреса устройства (то есть адреса устройства в формате urn:uuid:{guid}) в pszDeviceId. Эти сообщения не создаются при передаче физического адреса устройства в pszDeviceId. При использовании сообщений Resolve и ResolveMatches они отправляются перед сообщениями Get и GetResponse .

Следующие диагностические процедуры следует использовать для выявления проблем с приложением, вызывающим 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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