Что означает код HRESULT 0xC00D1393 (NS_E_NAMESPACE_DUPLICATE_NAME)?

 
Предыдущий Следующий
NS_E_NAMESPACE_NAME_TOO_LONG NS_E_NAMESPACE_EMPTY_NAME

NS_E_NAMESPACE_DUPLICATE_NAME

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

Механизм и область действия

Этот результат (0xC00D1393) отмечает границу у родительского узла уже существует дочерний узел с запрошенным именем. Диагностику следует начинать с объекта Windows Media Services и точной операции, вернувшей HRESULT.

Windows Media Services сохраняет server configuration в виде типизированной иерархии. Когда этот результат возвращается, nodes имеют names, value types, security classifications и persistence rules; callbacks привязаны к конкретным nodes, а не к произвольным строкам. В он trace при import или replication configuration сравните ServerNamespace.xml, NameSpaceDelta.xml и registrations plug-ins, но не редактируйте эти файлы во время работы WMServer. Решающий вопрос состоит в том, соответствуют ли живой объект и значения этой границе; базовое описание AllStat само по себе не показывает поколение объекта, выбранный подключаемый модуль или сбой нижнего уровня.

Проверка предварительного условия владельца

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

Для автоматических тестов он проверяйте одновременно сам HRESULT и итоговое состояние publishing point, playlist, plug-in или архива; исчезновение одного кода без правильного состояния не является успешным исправлением.

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

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

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

Типичная ошибочная реакция: не повторяйте create после задержки: детерминированная коллизия имени останется. Это не проверяет решающее условие «у родительского узла уже существует дочерний узел с запрошенным именем». Сохраняйте символическое имя и данные владельца вместо общего сообщения COM.

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

ДанныеПочему это важно для него
Решающее состояниепуть родителя, нормализованное запрошенное имя, тип существующего дочернего узла, persistence и создающая transaction
Ответственный объектЗапишите 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.

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

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

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

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

Сравнение с соседними состояниями

Основное различие: Wrong type возможен при обновлении существующего node; duplicate name возникает при попытке создать ещё один node.

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

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

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


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