| Предыдущий | Следующий |
| NS_E_PLAYLIST_ENTRY_ALREADY_PLAYING | NS_E_PLAYLIST_PARSE_FAILURE |
NS_E_EMPTY_PLAYLIST
Как исследовать NS_E_EMPTY_PLAYLIST
Что проверяет сервер
Этот результат (0xC00D14B5) отмечает границу разобранный список воспроизведения или каталог не содержит ни одной воспроизводимой записи. Диагностику следует начинать с объекта Windows Media Services и точной операции, вернувшей HRESULT.
Parser списка воспроизведения WMS преобразует WSX/SMIL или другой поддерживаемый источник во внутрипамятный список воспроизведения для клиента. Когда этот результат возвращается, идентификатор записи, вложенность, текущее направление и состояние shutdown важны независимо от существования указанного медиафайла. В он трассировке сохраните список воспроизведения в том виде, в котором его видит parser после redirect или динамической генерации. При диагностике он, server работает с разрешённым документом и идентификаторами записей в памяти, а не обязательно с текстом, который оператор открыл первоначально. Решающий вопрос состоит в том, соответствуют ли живой объект и значения этой границе; базовое описание AllStat само по себе не показывает поколение объекта, выбранный подключаемый модуль или сбой нижнего уровня.
Соберите воспроизводимую запись инцидента
| Данные | Почему это важно для него |
|---|---|
| Решающее состояние | URL списка воспроизведения, выбранный parser, итоговое число дочерних записей, исключённые элементы и результат перечисления каталога |
| Ответственный объект | Запишите server, publishing point, playlist, namespace node, plug-in или элемент cache, вернувший этот результат, включая время его создания или restart. |
| Первый нижележащий результат | Сохраните первое событие Win32, socket, COM, parser или plug-in до HRESULT; более поздние wrappers могут сопоставлять несколько причин с этим результатом. |
| Контролируемое сравнение | Используйте заведомо исправный объект того же типа и измените только предварительное условие «разобранный список воспроизведения или каталог не содержит ни одной воспроизводимой записи». |
| Конфиденциальные данные | По возможности записывайте identifiers, lengths, hashes и обезличенные URL; не публикуйте passwords, authorization files или несвязанные client data. |
Связанные коды относятся к другим границам.
Основное различие: Ошибка parse означает, что документ не удалось интерпретировать; empty playlist означает, что parse или enumeration завершились с нулём воспроизводимых элементов.
| Близкий результат | Другая контрольная точка |
|---|---|
NS_E_PLAYLIST_PARSE_FAILURE | Используйте тип объекта и последовательность операций, чтобы определить, какой результат является первичным. |
NS_E_PLAYLIST_ENTRY_ALREADY_PLAYING | По отношению к этому результатуэтот соседний результат относится к другому состоянию или ветви проверки, даже если видимый пользователю симптом похож. |
NS_E_PLAYLIST_UNSUPPORTED_ENTRY | Используйте тип объекта и последовательность операций, чтобы определить, какой результат является первичным. |
Структура сбоя для этого кода
В типичном инциденте он сервер достигает условия «разобранный список воспроизведения или каталог не содержит ни одной воспроизводимой записи» и отклоняет операцию до безопасного перехода к следующей стадии. Поэтому запись инцидента должна объединять URL списка воспроизведения, выбранный parser, итоговое число дочерних записей, исключённые элементы и результат перечисления каталога, поколение объекта и точный административный либо protocol request. Пример воспроизведения: операция достигает условия «разобранный список воспроизведения или каталог не содержит ни одной воспроизводимой записи» при значениях: URL списка воспроизведения, выбранный parser, итоговое число дочерних записей, исключённые элементы и результат перечисления каталога.
Полезная отрицательная проверка — добавить хотя бы один корректный элемент media/playlist либо исправить источник данных так, чтобы перечисление возвращало содержимое. Если это изменение продвигает тот же он продвинуться дальше, результат подтверждает эту границу. Если он сохраняется, вернитесь к первому событию нижнего уровня, не расширяя восстановительные действия.
Типичная ошибочная реакция: не меняйте клиентские codecs: при пустом результате перечисления декодировать ещё нечего. Это не проверяет решающее условие «разобранный список воспроизведения или каталог не содержит ни одной воспроизводимой записи». Сохраняйте символическое имя и данные владельца вместо общего сообщения COM.
Минимальный полезный эксперимент
- Запишите
0xC00D14B5, он, точное API/administrative action и время первого сбоя. - Сохраните URL списка воспроизведения, выбранный parser, итоговое число дочерних записей, исключённые элементы и результат перечисления каталога.
- Подтвердите, что объект относится к текущему поколению WMServer, publishing point или presentation.
- Выполните один изолированный эксперимент: устранить причину, по которой разобранный список воспроизведения или каталог не содержит воспроизводимых записей.
- Повторите исходную операцию он через тот же protocol и service account; не подменяйте её другим client-side test.
- после него подтвердите ожидаемое следующее состояние и сохраните более поздний HRESULT как отдельный результат pipeline.
Для автоматических тестов он проверяйте одновременно сам HRESULT и итоговое состояние publishing point, playlist, plug-in или архива; исчезновение одного кода без правильного состояния не является успешным исправлением.
Изменения, которые не доказывают причину
- не меняйте клиентские codecs: при пустом результате перечисления декодировать ещё нечего.
- Не меняйте в одном тесте точку публикации, протокол, содержимое и набор подключаемых модулей. Когда возвращается он возвращается, такой тест не показывает, какое именно предварительное условие устранило код.
- Не подавляйте он и не заменяйте его общим сообщением об ошибке media server; сохраняйте символический код и операцию-владельца в telemetry.
Результаты проверки
| Наблюдение при повторной проверке | Толкование |
|---|---|
| Тот же вызов по-прежнему возвращает он | Отклонённое предварительное условие не изменилось либо caller всё ещё использует старое поколение object/configuration. |
| Операция проходит дальше, и появляется более поздний код | Эта граница пройдена. После этого результатадиагностируйте новый код на его собственной стадии источника, анализатора, приёмника, сети или клиента. |
| Новый объект работает, а сохранённый — нет | В инциденте он участвуют lifetime или stale context объекта; исправьте lifecycle вместо machine-wide workaround. |
| Сбой возникает только для одного publishing point, playlist, ключа cache или plug-in | Данные указывают на configuration/content конкретного объекта, а не на server-wide outage для него. |
Технические ссылки
- Серверные списки воспроизведения
- Системные модули разбора списков воспроизведения
- Программирование playlists
- Реестр HRESULT Microsoft
Завершайте диагностику только после того, как он перестанет возвращаться на актуальном объекте и будет подтверждено ожидаемое следующее состояние.
Нужно найти другой код? Найти другой код состояния или ошибки.
