Что означает код HRESULT 0xC00D157C (NS_E_NO_SCRIPT_ENGINE)?

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

NS_E_NO_SCRIPT_ENGINE

Серверное значение NS_E_NO_SCRIPT_ENGINE

Где находится граница

Этот результат (0xC00D157C) обозначает для playlist или plug-in на основе script отсутствует совместимый script engine. Диагностику следует начинать с объекта Windows Media Services и точной операции, вернувшей HRESULT.

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

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

  1. Зафиксируйте 0xC00D157C, этот результат, точное API/administrative action и время первого сбоя.
  2. Сохраните язык script/ProgID, тип файла, зарегистрированные engines, архитектура процесса и редакция сервера.
  3. Подтвердите, что объект относится к текущему поколению WMServer, publishing point или presentation.
  4. Выполните один изолированный эксперимент: установите/зарегистрируйте требуемый поддерживаемый engine либо замените script поддерживаемым компонентом без script.
  5. Повторите исходную операцию этот результат через тот же protocol и service account; не подменяйте её другим client-side test.
  6. После этого результатаподтвердите ожидаемое следующее состояние и сохраните более поздний HRESULT как отдельный результат pipeline.

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

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

В типичном инциденте он сервер достигает условия «для script-based playlist или plug-in отсутствует совместимый script engine» и отклоняет операцию до того, как вызывающая сторона может считать следующий этап выполненным. Поэтому в записи инцидента нужно связать язык script/ProgID, тип файла, зарегистрированные engines, архитектура процесса и редакция сервера с поколением объекта и точным административным или протокольным запросом.

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

Соблазнительная, но ошибочная реакция — установить script debugger; execution engine и debugger являются разными зависимостями. Это не проверяет важное различие: script debugger not installed возникает только при запросе debugging для уже доступного script engine. Сохраняйте символическое имя и данные владельца вместо общего сообщения COM.

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

ДанныеПочему это важно для него
Решающее состояниеязык script/ProgID, тип файла, зарегистрированные engines, архитектура процесса и редакция сервера
Ответственный объектЗапишите server, publishing point, playlist, namespace node, plug-in или элемент cache, вернувший он, включая время его создания или restart.
Первый нижележащий результатСохраните первое событие Win32, socket, COM, parser или plug-in до HRESULT; более поздние wrappers могут сопоставлять несколько причин с ним.
Контролируемое сравнениеИспользуйте заведомо исправный объект того же типа и изменяйте только предусловие, описанное как «для script-based playlist или plug-in отсутствует совместимый script engine».
Конфиденциальные данныеПо возможности записывайте identifiers, lengths, hashes и обезличенные URL; не публикуйте passwords, authorization files или несвязанные client data.

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

Наблюдение при повторной проверкеТолкование
Тот же вызов по-прежнему возвращает онОтклонённое предварительное условие не изменилось либо caller всё ещё использует старое поколение object/configuration.
Операция проходит дальше, и появляется более поздний кодЭта граница пройдена. После этого результатадиагностируйте новый код на его собственной стадии источника, анализатора, приёмника, сети или клиента.
Новый объект работает, а сохранённый — нетУчаствуют lifetime или stale context объекта; исправьте lifecycle вместо machine-wide workaround.
Сбой возникает только для одного publishing point, playlist, ключа cache или plug-inдля него.

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

  • установка script debugger; execution engine и debugger являются разными зависимостями.
  • Не стирайте первый HRESULT многократными повторами: более поздние вызовы могут скрыть компонент, отклонивший операцию.
  • Не подавляйте он и не заменяйте его общим сообщением об ошибке media server; сохраняйте символический код и операцию-владельца в telemetry.

Не объединяйте соседние значения HRESULT

Основное различие: script debugger not installed возникает только при запросе debugging для уже доступного script engine.

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

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

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


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