Проверка трассировок сети для обмена метаданными HTTP
Для проверки запросов на обмен метаданными HTTP можно использовать любой анализатор сетевых пакетов, который может отображать необработанные пакеты. Рекомендуется Microsoft Network Monitor 3 (Netmon). Дополнительные сведения о Netmon см. в разделах Скачивание Netmon и Примеры фильтров DPWS.
Эта диагностическая процедура может оказаться не столь полезной для клиентов и узлов, использующих безопасный канал для обмена данными, так как содержимое сообщения зашифровано.
Проверка трассировок сети для обмена метаданными HTTP
Настройте узел и клиент для работы по сети (то есть убедитесь, что узел и клиент будут работать на разных компьютерах).
Установите анализатор пакетов (Netmon) на клиенте или узле.
Настройте анализатор пакетов для записи трафика на сетевом адаптере, соединяющем узел и клиент.
Воспроизведите ошибку, запустив узел и клиент или нажав клавишу F5 в Обозреватель сети.
Отфильтруйте результаты, чтобы изолировать трафик обмена WS-Discovery и метаданными. Чтобы просмотреть примеры фильтров Netmon, см. статьи Скачивание Netmon и Примеры фильтров DPWS.
Примечание
Это необязательный шаг.
Убедитесь, что сообщения, передаваемые между клиентом и узлом, соответствуют основным требованиям к трафику.
Проверка соответствия сообщений требованиям к трафику
Клиенты и узлы WSDAPI должны отправлять сообщения, соответствующие следующим критериям. Общие сведения о шаблонах сообщений см. в разделе Шаблоны сообщений обнаружения и обмена метаданными.
Сообщения должны соответствовать требованиям к трафику, приведенным в разделе Проверка трассировок сети для UDP WS-Discovery, если нет абсолютной уверенности в том, что WS-Discovery не используется для обмена метаданными.
Необходимо установить TCP-подключение между клиентом и первым транспортным адресом, указанным в элементе XAddrs сообщения ProbeMatches или ResolveMatches . В следующем списке показан типичный обмен пакетами, используемый для установления TCP-подключения.
- Клиент отправляет пакет TCP SYN на узел через указанный порт.
- Узел отправляет клиенту пакет TCP SYN/ACK.
- Клиент отправляет пакет TCP ACK на узел через указанный порт.
После отправки клиентом пакета TCP ACK устанавливается TCP-подключение. Обратите внимание, что этот обмен сообщениями не будет происходить, если ранее было установлено TCP-подключение.
Клиент должен отправить действительный HTTP-запрос и сообщение Get .
Узел должен прослушивать URL-путь, указанный в HTTP-запросе Get .
Элемент To сообщения Get metadata должен присутствовать, а не пустой. Значение элемента To должно соответствовать одному из адресов конечной точки узла. Адрес конечной точки узла обычно объявляется в сообщении ProbeMatches или ResolveMatches .
Узел должен отправить допустимый заголовок HTTP-ответа. Если первоначальный запрос был выполнен успешно, заголовок ответа должен содержать код состояния HTTP/1.1 200.
Узел должен отправить допустимое сообщение GetResponse .
Элемент RelatesTo сообщения GetResponse должен присутствовать и не должен быть пустым. Его значение должно соответствовать значению элемента MessageId из соответствующего сообщения Get .
Если http-запросы или сообщения обмена метаданными, отправленные программой, не соответствуют этим требованиям к трафику, причина проблемы успешно определена и дальнейшие действия по устранению неполадок не нужны. Перепишите программу таким образом, чтобы она создавала соответствующие сообщения и запросы, и повторно протестируйте программу.
Если источник проблемы по-прежнему не удается определить, обратитесь за помощью в службу поддержки Майкрософт. Прежде чем обращаться в службу поддержки, соберите соответствующие файлы журналов, чтобы определить первопричину проблемы. Дополнительные сведения см. в разделе Включение трассировки WSDAPI.
Связанные темы