| Предыдущий | Следующий |
| 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; не публикуйте пароли, файлы авторизации или открытые клиентские данные. |
Минимальный полезный эксперимент
- Зафиксируйте
0xC00D157E, он, точное действие API или административную операцию и время первого сбоя. - Сохраните URL/префикс источника, коллекцию DataSources, флаги включения, регистрацию и запрошенный метод доступа.
- Убедитесь, что объект по-прежнему относится к текущему поколению WMServer, точки публикации или представления.
- Проведите один изолированный эксперимент: включите или зарегистрируйте соответствующий файловый, сетевой, HTTP-, push- или пользовательский источник данных и повторите тот же URL.
- Повторите исходную операцию он через тот же протокол и под той же учётной записью службы; не подменяйте её другим тестом на стороне клиента.
- после него проверьте ожидаемое следующее состояние и сохраните любой последующий HRESULT как отдельный результат конвейера.
После исправления сохраните событие сервера и состояние объекта, чтобы последующий HRESULT не был ошибочно принят за повтор этой же причины.
Связанные коды относятся к другим границам.
Основное различие: «подключаемый модуль списка воспроизведения не найден» возникает после доступа к источнику, когда ни один парсер не принимает формат списка воспроизведения.
| Близкий результат | Другая контрольная точка |
|---|---|
NS_E_PLAYLIST_PLUGIN_NOT_FOUND | Сравните его собственную символическую границу и первый сбойный вызов; он нельзя автоматически объединять с ним. |
NS_E_PLUGIN_ERROR_REPORTED | По отношению к нему этот соседний результат относится к другому состоянию или ветви проверки, даже если видимый пользователю симптом похож. |
NS_E_DATA_SOURCE_ENUMERATION_NOT_SUPPORTED | Используйте тип объекта и последовательность операций, чтобы определить, какой результат является первичным. |
Как интерпретировать второй результат
| Наблюдение при повторной проверке | Толкование |
|---|---|
| Тот же вызов по-прежнему возвращает он | Отклонённое предварительное условие не изменилось либо вызывающая сторона всё ещё использует устаревшее поколение объекта или конфигурации. |
| Операция проходит дальше, и появляется более поздний код | Эта граница пройдена. после него диагностируйте новый код отдельно на его собственной стадии источника, анализатора, приёмника, сети или клиента. |
| Новый объект работает, а сохранённый — нет | Причина связана со временем жизни объекта или устаревшим контекстом; исправьте управление жизненным циклом вместо общесистемного обходного решения. |
| Сбой возникает только у одной точки публикации, списка воспроизведения, ключа кэша или подключаемого модуля | Данные указывают на конфигурацию или содержимое конкретного объекта, а не на общий сбой сервера. |
Изменения, которые не доказывают причину
- изменение парсер списка воспроизведения, когда сервер ещё не получил байты источника.
- Не стирайте первый HRESULT многократными нажатиями «Применить»: последующие вызовы могут заменить сведения об ошибке потока и скрыть компонент, отклонивший операцию.
- Не подавляйте он и не заменяйте его общим сообщением «ошибка медиасервера»; сохраняйте в телеметрии символический код и операцию, которая его вернула.
Технические ссылки
- Классы подключаемых модулей Windows Media Services
- Использование внутренних событий для определения ошибок
- Системные подключаемые модули анализатора мультимедиа
- Реестр HRESULT Microsoft
Завершайте диагностику только после того, как он перестанет возвращаться на актуальном объекте и будет подтверждено ожидаемое следующее состояние.
Нужно найти другой код? Найти другой код состояния или ошибки.
