| Предыдущий | Следующий |
| 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 само по себе не показывает поколение объекта, выбранный подключаемый модуль или сбой нижнего уровня.
Проверка предварительного условия владельца
- Запишите
0xC00D1393, этот результат, точное API/administrative action и время первого сбоя. - Сохраните путь родителя, нормализованное запрошенное имя, тип существующего дочернего узла, persistence и создающая transaction.
- Подтвердите, что объект относится к текущему поколению WMServer, publishing point или presentation.
- Выполните один изолированный эксперимент: использовать уникальное имя либо существующий узел, если это предусмотрено операцией.
- Повторите исходную операцию этот результат через тот же protocol и service account; не подменяйте её другим client-side test.
- после него подтвердите ожидаемое следующее состояние и сохраните более поздний 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 | Используйте тип объекта и последовательность операций, чтобы определить, какой результат является первичным. |
Технические ссылки
Завершайте диагностику только после того, как он перестанет возвращаться на актуальном объекте и будет подтверждено ожидаемое следующее состояние.
Нужно найти другой код? Найти другой код состояния или ошибки.
