Что означает код HRESULT 0xC00D14BC (NS_E_PLAYLIST_SHUTDOWN)?

 
Предыдущий Следующий
NS_E_PLAYLIST_TOO_MANY_NESTED_PLAYLISTS NS_E_PLAYLIST_END_RECEDING

NS_E_PLAYLIST_SHUTDOWN

NS_E_PLAYLIST_SHUTDOWN— владелец, данные и восстановление

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

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

Парсер списка воспроизведения WMS преобразует WSX/SMIL или другой поддерживаемый источник во внутрипамятный список воспроизведения для клиента. Когда этот результат возвращается, идентификатор записи, вложенность, текущее направление и состояние завершения работы важны независимо от существования указанного медиафайла. В трассировке он сохраните список воспроизведения в том виде, в котором его видит парсер после перенаправления или динамической генерации. При диагностике он сервер работает с разрешённым документом и идентификаторами записей в памяти, а не обязательно с текстом, который оператор открыл первоначально. Решающий вопрос — соответствуют ли текущий объект и его значения этой границе; базовое описание AllStat само по себе не показывает поколение объекта, выбранный подключаемый модуль или исходный сбой нижнего уровня.

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

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

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

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

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

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

Соберите воспроизводимую запись инцидента

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

Контролируемое исправление

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

Повторите тест с заново полученным серверным объектом: устаревший указатель COM способен создавать впечатление, что исправленная конфигурация не изменилась.

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

Основное различие: достижение конца при обратном обходе описывает достижение границы при направленном обходе, тогда как завершение работы делает недействительным весь объект.

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

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

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

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

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


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