| Предыдущий | Следующий |
| NS_I_DISK_STOP | NS_I_RECONNECTED |
NS_I_PLAYLIST_CHANGE_RECEDING
Серверное значение NS_I_PLAYLIST_CHANGE_RECEDING
Механизм и область действия
NS_I_PLAYLIST_CHANGE_RECEDING (0x400D14BE) обозначает Список воспроизведения изменился, пока сервер обходил его в обратном направлении.. Для этого результата хотя внешним симптомом может быть прерванное воспроизведение, этот HRESULT возникает на административном этапе или на этапе распространения.
Для этого результата парсер списка воспроизведения WMS преобразует WSX/SMIL или другой поддерживаемый источник во внутрипамятный список воспроизведения для клиента. Когда Этот результат возвращается, идентификатор записи, вложенность, текущее направление и состояние завершения работы важны независимо от существования указанного медиафайла. В трассировке сохраните список воспроизведения в том виде, в котором его видит парсер после перенаправления или динамической генерации. При диагностике этого результата сервер работает с разрешённым документом и идентификаторами записей в памяти, а не обязательно с текстом, который оператор открыл первоначально. Для этого результата решающий вопрос — соответствуют ли живой объект и его значения данной границе; базового описания AllStat недостаточно, чтобы определить поколение объекта, выбранный модуль или первичную ошибку нижнего уровня.
Проверка предварительного условия владельца
- Зафиксируйте
0x400D14BE,NS_I_PLAYLIST_CHANGE_RECEDING, точное действие API/администратора и время первого сбоя. - Сохраните список entries до и после изменения, позицию активного iterator, событие изменения и последовательность команды receding.
- Для этого результата убедитесь, что объект по-прежнему относится к текущему поколению WMServer, точки публикации или представления.
- Выполните один изолированный эксперимент: обновите iterator/current entry и решите, продолжать ли обход от нового predecessor.
- Повторите исходную операцию через тот же протокол и под той же учётной записью службы; не подменяйте её другим тестом на стороне клиента.
- После этого результата проверьте ожидаемое следующее состояние и сохраните любой последующий HRESULT как отдельный результат конвейера.
Для этого результата проверяйте одновременно сам HRESULT и итоговое состояние publishing point, playlist, plug-in или архива; исчезновение одного кода без правильного состояния не является успешным исправлением.
Структура сбоя для этого кода
В типичном инциденте сервер обнаруживает изменение playlist во время обратного обхода и не может безопасно считать следующий этап выполненным. В отчёте сопоставьте список entries до/после изменения, позицию iterator, событие изменения и receding command sequence с поколением объекта и точным административным или protocol request.
Полезный отрицательный контроль — обновить iterator/current entry и решить, продолжать ли от нового predecessor. Если после этого тот же вызов проходит дальше, результат подтверждает эту границу. Если Этот результат сохраняется, вернитесь к первому событию нижнего уровня, не расширяя восстановительные действия.
Соблазнительный, но неверный путь — зарегистрировать это как fatal media-file error: статус описывает информационный переход состояния. Ключевое различие: end receding означает отсутствие предыдущего entry, а здесь collection изменилась во время обхода. Поэтому система мониторинга должна сохранять символическое имя, а не только общую ошибку COM.
Данные, отделяющие этот код
| Данные | Почему это важно для этого результата |
|---|---|
| Решающее состояние | список entries до и после изменения, позицию активного iterator, событие изменения и последовательность команды receding. |
| Ответственный объект | Запишите сервер, точку публикации, список воспроизведения, узел пространства имён, подключаемый модуль или элемент кэша, вернувший этот результат, включая время его создания или перезапуска. |
| Первый нижележащий результат | Сохраните самое раннее событие Win32, сокета, COM, анализатора или подключаемого модуля до HRESULT; последующие оболочки могут сопоставить несколько причин с этим результатом. |
| Контролируемое сравнение | Используйте заведомо исправный объект того же типа и измените только предварительное условие: playlist не должен изменяться во время обратного обхода. |
| Конфиденциальные данные | Для этого результата по возможности записывайте идентификаторы, длины, хэши и обезличенные URL; не публикуйте пароли, файлы авторизации или неограниченные клиентские данные. |
Результаты проверки
| Наблюдение при повторной проверке | Толкование |
|---|---|
Тот же вызов по-прежнему возвращает NS_I_PLAYLIST_CHANGE_RECEDING | Для этого результата отклонённое предварительное условие не изменилось либо вызывающая сторона всё ещё использует старое поколение объекта/конфигурации. |
| Операция проходит дальше, и появляется более поздний код | Граница этого результата пройдена. После NS_I_PLAYLIST_CHANGE_RECEDING диагностируйте новый код отдельно на его собственной стадии источника, анализатора, приёмника, сети или клиента. |
| Новый объект работает, а сохранённый — нет | Для этого результата время жизни объекта или устаревший контекст является частью инцидента; исправьте управление жизненным циклом, а не применяйте общесистемный обходной путь. |
| Сбой возникает только у одной точки публикации, списка воспроизведения, ключа кэша или подключаемого модуля | Для этого результата данные указывают на конфигурацию или содержимое конкретного объекта, а не на общий сбой сервера. |
Изменения, которые не доказывают причину
- регистрировать это как fatal media-file error; это информационный переход состояния.
- Для этого результата не меняйте в одном тесте точку публикации, протокол, содержимое и набор подключаемых модулей. Когда возвращается Этот результат возвращается, такой тест не показывает, какое именно предварительное условие устранило код.
- Не подавляйте этот результат и не заменяйте его общим сообщением «ошибка медиасервера»; сохраняйте в телеметрии символический код и операцию, которая его вернула.
Сравнение с соседними состояниями
Основное различие: end receding означает, что предыдущего entry больше нет; этот результат означает изменение collection во время обхода.
| Близкий результат | Другая контрольная точка |
|---|---|
NS_E_PLAYLIST_ENTRY_ALREADY_PLAYING | Сравните его собственную символическую границу и первый сбойный вызов; этот результат нельзя автоматически объединять с этим результатом. |
NS_E_PLAYLIST_END_RECEDING | По отношению к этому результату этот соседний результат относится к другому состоянию или ветви проверки, даже если видимый пользователю симптом похож. |
NS_E_EMPTY_PLAYLIST | Для этого результата используйте тип объекта и последовательность операций, чтобы определить, какой результат является первичным. |
Технические ссылки
- Серверные списки воспроизведения
- Системные модули разбора списков воспроизведения
- Программирование списков воспроизведения
- Реестр HRESULT Microsoft
Завершайте диагностику только после того, как исходный HRESULT перестанет возвращаться на актуальном объекте и будет подтверждено ожидаемое следующее состояние.
Нужно найти другой код? Найти другой код состояния или ошибки.