Устранение неполадок с другими приложениями WSDAPI
Приложения могут напрямую вызывать интерфейсы и функции WSDAPI для обнаружения устройств и обмена метаданными. Шаблоны сообщений, используемые этими приложениями, различаются.
Цель этого руководства по устранению неполадок — помочь разработчикам приложений WSDAPI успешно реализовать прокси-сервер устройства. Это руководство не предназначено для устранения неполадок во всех аспектах WSDAPI. Если прокси-сервер устройства успешно создан, а клиент и узел могут видеть друг друга в сети, в этом руководстве не удается решить проблемы приложения. Чтобы устранить эти проблемы с приложениями, следуйте инструкциям в разделе Включение трассировки WSDAPI и обратитесь в службу поддержки Майкрософт за дополнительной помощью.
Устранение неполадок клиентов, вызывающих WSDCreateDeviceProxy
Приложения вызывают WSDCreateDeviceProxy для создания и инициализации экземпляра интерфейса IWSDDeviceProxy . Этот прокси-объект устройства можно использовать для объявления служб на устройстве, а также для обмена метаданными.
Приложение, вызывающее WSDCreateDeviceProxy , всегда использует следующие сообщения.
Приложение, вызывающее WSDCreateDeviceProxy , иногда использует следующие сообщения.
Сообщения Resolve и ResolveMatches создаются при передаче логического адреса устройства (то есть адреса устройства в формате urn:uuid:{guid}) в pszDeviceId. Эти сообщения не создаются при передаче физического адреса устройства в pszDeviceId. При использовании сообщений Resolve и ResolveMatches они отправляются перед сообщениями Get и GetResponse .
Следующие диагностические процедуры следует использовать для выявления проблем с приложением, вызывающим WSDCreateDeviceProxy с физическим адресом устройства.
- Проверьте параметры адаптера и брандмауэра.
- Используйте универсальный узел и клиент для обмена метаданными HTTP.
- Используйте ведение журнала WinHTTP, чтобы проверить получение трафика.
- Проверьте трассировки сети для обмена метаданными HTTP.
Для выявления проблем с приложением, вызывающим WSDCreateDeviceProxy с логическим адресом устройства, следует использовать следующие диагностические процедуры.
- Проверьте параметры адаптера и брандмауэра.
- Используйте универсальный узел и клиент для UDP WS-Discovery.
- Используйте клиент отладки WSD для проверки многоадресного трафика.
- Проверьте трассировки сети для обнаружения UDP WS-Discovery.
- Используйте универсальный узел и клиент для обмена метаданными HTTP.
- Используйте ведение журнала WinHTTP, чтобы проверить получение трафика.
- Проверьте трассировки сети для обмена метаданными 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 — физический адрес.
- Проверьте параметры адаптера и брандмауэра.
- Используйте универсальный узел и клиент для обмена метаданными HTTP.
- Используйте ведение журнала WinHTTP, чтобы проверить получение трафика.
- Проверьте трассировки сети для обмена метаданными HTTP.
Следующие диагностические процедуры следует использовать (для того, чтобы определить проблемы с приложением, вызывающим WSDCreateDeviceProxyAdvanced с параметром pDeviceAddress имеет значение NULL , а pszDeviceId — логическим адресом).
- Проверьте параметры адаптера и брандмауэра.
- Используйте универсальный узел и клиент для UDP WS-Discovery.
- Используйте клиент отладки WSD для проверки многоадресного трафика.
- Проверьте трассировки сети для обнаружения UDP WS-Discovery.
- Используйте универсальный узел и клиент для обмена метаданными HTTP.
- Используйте ведение журнала WinHTTP, чтобы проверить получение трафика.
- Проверьте трассировки сети для обмена метаданными 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, соответствуют требованиям к трафику.
- Проверьте параметры адаптера и брандмауэра.
- Используйте универсальный узел и клиент для UDP WS-Discovery.
- Используйте клиент отладки WSD для проверки многоадресного трафика.
- Проверьте трассировки сети для обнаружения UDP WS-Discovery.
Если приложение вызывает IWSDiscoveryProvider::SearchByAddress, оно является направленным приложением обнаружения. Дополнительные сведения об устранении неполадок см. в статье Устранение неполадок приложений с помощью направленного обнаружения.
Связанные темы