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