Что означает код HRESULT 0xC00D157E (NS_E_SOURCE_PLUGIN_NOT_FOUND)?

 
Предыдущий Следующий
NS_E_PLUGIN_ERROR_REPORTED NS_E_PLAYLIST_PLUGIN_NOT_FOUND

NS_E_SOURCE_PLUGIN_NOT_FOUND

Диагностика NS_E_SOURCE_PLUGIN_NOT_FOUND — диагностика в Windows Media Services

Что проверяет сервер

Этот результат (0xC00D157E) обозначает ни один включённый источник данных не объявляет поддержку запрошенного URL-префикса или источника. Код определяет узкий серверный контракт, поэтому при диагностике нужно сохранить поколение объекта и первый исходный результат нижнего уровня.

Windows Media Services выбирает подключаемые модули по классу, регистрации, состоянию включения и заявленному формату или протоколу. При возврате этот результат сервер может успешно загрузить один класс модуля, но не найти источник данных, анализатор или механизм сценариев, необходимый конкретному запросу. В трассировке он записывайте CLSID выбранного подключаемого модуля, класс, тип загрузки, состояние включения и пользовательское событие ошибки. При диагностике он обнаружение и выполнение подключаемого модуля завершаются сбоем по-разному. Решающий вопрос — соответствуют ли текущий объект и его значения этой границе; базовое описание AllStat само по себе не показывает поколение объекта, выбранный подключаемый модуль или исходный сбой нижнего уровня.

Структура сбоя для этого кода

В типичном инциденте этот результат сервер достигает условия «ни один включённый источник данных не объявляет поддержку запрошенного URL-префикса или источника» и отклоняет операцию до безопасного перехода к следующей стадии. Поэтому запись инцидента должна объединять URL/префикс источника, коллекцию DataSources, флаги включения, регистрацию и запрошенный метод доступа, поколение объекта и точный административный либо протокольный запрос. Пример воспроизведения: операция достигает условия «ни один включённый источник данных не объявляет поддержку запрошенного URL-префикса или источника» при значениях: URL/префикс источника, коллекцию DataSources, флаги включения, регистрацию и запрошенный метод доступа.

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

Соблазнительное, но ошибочное действие — менять парсер списка воспроизведения; сервер ещё не получил байты источника. Оно не проверяет существенное здесь различие: «подключаемый модуль списка воспроизведения не найден» возникает после доступа к источнику, когда ни один парсер не принимает формат списка воспроизведения. По этой же причине система мониторинга должна сохранять символическое имя, а не только общую ошибку COM.

Что сохранить до любых изменений

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

Минимальный полезный эксперимент

  1. Зафиксируйте 0xC00D157E, он, точное действие API или административную операцию и время первого сбоя.
  2. Сохраните URL/префикс источника, коллекцию DataSources, флаги включения, регистрацию и запрошенный метод доступа.
  3. Убедитесь, что объект по-прежнему относится к текущему поколению WMServer, точки публикации или представления.
  4. Проведите один изолированный эксперимент: включите или зарегистрируйте соответствующий файловый, сетевой, HTTP-, push- или пользовательский источник данных и повторите тот же URL.
  5. Повторите исходную операцию он через тот же протокол и под той же учётной записью службы; не подменяйте её другим тестом на стороне клиента.
  6. после него проверьте ожидаемое следующее состояние и сохраните любой последующий HRESULT как отдельный результат конвейера.

После исправления сохраните событие сервера и состояние объекта, чтобы последующий HRESULT не был ошибочно принят за повтор этой же причины.

Связанные коды относятся к другим границам.

Основное различие: «подключаемый модуль списка воспроизведения не найден» возникает после доступа к источнику, когда ни один парсер не принимает формат списка воспроизведения.

Близкий результатДругая контрольная точка
NS_E_PLAYLIST_PLUGIN_NOT_FOUNDСравните его собственную символическую границу и первый сбойный вызов; он нельзя автоматически объединять с ним.
NS_E_PLUGIN_ERROR_REPORTEDПо отношению к нему этот соседний результат относится к другому состоянию или ветви проверки, даже если видимый пользователю симптом похож.
NS_E_DATA_SOURCE_ENUMERATION_NOT_SUPPORTEDИспользуйте тип объекта и последовательность операций, чтобы определить, какой результат является первичным.

Как интерпретировать второй результат

Наблюдение при повторной проверкеТолкование
Тот же вызов по-прежнему возвращает онОтклонённое предварительное условие не изменилось либо вызывающая сторона всё ещё использует устаревшее поколение объекта или конфигурации.
Операция проходит дальше, и появляется более поздний кодЭта граница пройдена. после него диагностируйте новый код отдельно на его собственной стадии источника, анализатора, приёмника, сети или клиента.
Новый объект работает, а сохранённый — нетПричина связана со временем жизни объекта или устаревшим контекстом; исправьте управление жизненным циклом вместо общесистемного обходного решения.
Сбой возникает только у одной точки публикации, списка воспроизведения, ключа кэша или подключаемого модуляДанные указывают на конфигурацию или содержимое конкретного объекта, а не на общий сбой сервера.

Изменения, которые не доказывают причину

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

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

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


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