Что означает код HRESULT 0xC00D2EE6 (NS_E_SERVER_UNAVAILABLE)?

 
Предыдущий Следующий
NS_E_PROXY_TIMEOUT NS_E_REFUSED_BY_SERVER

NS_E_SERVER_UNAVAILABLE

Исследование NS_E_SERVER_UNAVAILABLE не теряя первый сбой

Этот результат (0xC00D2EE6) обозначает медиасервер доступен по сети, но временно отклоняет запрос или не может его обслужить. Код относится к контрольной точке «медиасервер временно не обслуживает запрос», поэтому более поздние ошибки сети, кодека или метаданных следует записывать отдельно, не заменяя ими исходный результат.

Запрос потоковой передачи Windows Media проходит DNS, выбор прокси-сервера, согласование протокола, аутентификацию, создание сеанса и доставку пакетов для состояния «медиасервер доступен по сети, но временно отклоняет запрос или не может его обслужить». WMSP и связанные протоколы сохраняют состояние сеанса, поэтому успешное TCP-подключение само по себе не доказывает работоспособность медиасеанса при проверке «медиасервер временно не обслуживает запрос». В случае этот результат сохраняйте самый ранний результат нижнего уровня: оболочки способны сопоставить разные причины одному HRESULT.

Где возникает сбой

К этой контрольной точке предыдущие предварительные условия уже приняты, но компонент не может пройти границу: медиасервер доступен по сети, но временно отклоняет запрос или не может его обслужить. Успешное открытие файла, разрешение DNS или создание COM-объекта не доказывают допустимость этого последующего этапа.

Наиболее показательная проверка — повторить запрос к тому же медиаресурсу, сохранив один протокол и одну конечную точку, и раздельно записать время DNS-разрешения, подключения, ответа сервера и создания сеанса. Если после единственного изменения тот же вызов проходит дальше, это подтверждает границу этот результат. Если нет, вернитесь к первой вложенной ошибке и не расширяйте область исправления.

Интерпретация следующего сетевого состояния

Результат повторной проверкиТолкование для него
Тот же вызов по-прежнему возвращает кодЗначения, определяющие «медиасервер временно не обслуживает запрос», не изменились либо вызывающая сторона всё ещё использует объект предыдущего поколения.
Новый объект работает успешноВремя жизни или кэшированное состояние способствовало появлению этот результат; исправьте пересоздание объекта вместо обходного решения на уровне всего компьютера.
Вызов доходит до другого HRESULTИсходная граница пройдена. Диагностируйте новый код отдельно на его собственной стадии формата, графа, URL, сети или метаданных.
Сбой возникает только для одного ресурсаДанные указывают на состояние конкретного содержимого, URL, точки публикации, потока, атрибута или объекта, а не на общий сетевой сбой для состояния «медиасервер доступен по сети, но временно отклоняет запрос или не может его обслужить».

Сетевые и протокольные данные

ЗафиксируйтеКак это помогает выделить он
Ответственный вызовЗафиксируйте метод API, идентификатор объекта, поток выполнения или обратный вызов и временную метку для контрольной точки «медиасервер временно не обслуживает запрос».
Решающие значенияметод запроса и URL, заголовки протокола, строку состояния, заголовок сервера, длину тела ответа, временную метку события сервера и первый идентификатор запроса в диагностической записи о недоступности сервера
Поколение объектаОтметьте время создания объекта чтения, объекта записи, графа, URL-объекта, сеанса потоковой передачи или поставщика метаданных; устаревшее состояние может повторно вызвать он после изменения конфигурации.
Первый вложенный результатСохраните самый ранний статус кодека, COM, сокета, DNS, анализатора или поставщика до него; более поздние сообщения интерфейса менее конкретны.
Случай для сравненияИспользуйте один заведомо рабочий ресурс, проходящий ту же контрольную точку «медиасервер временно не обслуживает запрос», и изменяйте только отклонённое предварительное условие.

Повторная проверка с сохранением протокола

  1. Запишите 0xC00D2EE6, он, точную операцию и время первого сбоя.
  2. Сохраните метод запроса и URL, заголовки протокола, строку состояния, заголовок сервера, длину тела ответа, временную метку события сервера и первый идентификатор запроса в диагностической записи о недоступности сервера.
  3. Не используйте повторно граф, сеанс, объект чтения или объект метаданных, созданные до изменения соответствующей конфигурации или ресурса.
  4. Выполните один изолированный тест: повторить тот же запрос после восстановления доступности сервера, сохранив URL и протокол.
  5. Повторите запрос через тот же API и протокольный тракт; другой Player или локальная копия служат только сравнением и сами по себе не доказывают устранение исходной сетевой границы при проверке «медиасервер доступен по сети, но временно отклоняет запрос или не может его обслужить».
  6. Подтвердите ожидаемое следующее состояние и сохраните любой новый HRESULT как отдельный последующий результат при проверке «медиасервер доступен по сети, но временно отклоняет запрос или не может его обслужить».

Близкие результаты не взаимозаменяемы

Главное различие: Код относится к конкретной сетевой или протокольной границе «медиасервер временно не обслуживает запрос»; соседний HRESULT нужно диагностировать отдельно по его собственному владельцу.

Близкий HRESULTКак его сравнивать
NS_E_ERROR_FROM_PROXYСравните ответственный API и первое отклонённое значение: это соседняя контрольная точка, а не автоматически та же причина, что и у он.
NS_E_PROXY_TIMEOUTИспользуйте состояние объекта и порядок операций, чтобы определить исходный код, если оба появляются в одной трассировке.
NS_E_REFUSED_BY_SERVERСохраните он отдельно, если он появляется только после устранения условия он.

Действия, вводящие в заблуждение

  • не сводите любой HRESULT потоковой передачи к потере пакетов: раздельно фиксируйте DNS, подключение, ответ и этапы сеанса при проверке «медиасервер доступен по сети, но временно отклоняет запрос или не может его обслужить».
  • Не стирайте данные о первом появлении он многократными повторами; обратные вызовы и повторное подключение могут заменить полезное исходное состояние более поздней ошибкой верхнего уровня.
  • Не публикуйте учётные данные, материалы защищённого содержимого или полные закрытые URL. Записывайте обезличенные идентификаторы, длины, хэши и поля протокола, необходимые для воспроизведения для состояния «медиасервер доступен по сети, но временно отклоняет запрос или не может его обслужить».

Технические ссылки

Завершайте диагностику только после того, как исходная операция с ним успешно выполняется на актуальном объекте и наблюдается ожидаемое следующее состояние.


Нужно найти другой код? Найти другой код состояния или ошибки.