Что означает код HRESULT 0xC00D1452 (NS_E_WRONG_PUBLISHING_POINT_TYPE)?

 
Предыдущий Следующий
NS_E_CANNOT_REMOVE_PLUGIN NS_E_UNSUPPORTED_LOAD_TYPE

NS_E_WRONG_PUBLISHING_POINT_TYPE

Диагностика NS_E_WRONG_PUBLISHING_POINT_TYPE — диагностика в Windows Media Services

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

NS_E_WRONG_PUBLISHING_POINT_TYPE (0xC00D1452) обозначает метод, предназначенный для cache/proxy publishing point либо обычного publishing point, используется для объекта противоположного типа. Для этого результата код определяет узкий серверный контракт, поэтому при диагностике нужно сохранить поколение объекта и первый исходный результат нижнего уровня.

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

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

В типичном инциденте сервер обнаруживает вызов метода не для того типа publishing point и отклоняет операцию до следующего этапа. В отчёте сопоставьте фактический тип точки, запрошенный interface/method, путь точки и конфигурацию создания с поколением объекта и точным административным или протокольным запросом.

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

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

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

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

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

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

Для этого результата успех означает, что та же операция проходит эту контрольную точку и достигает ожидаемого следующего состояния, а не просто что символический код исчезает.

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

Основное различие: ошибки stopped/started относятся к жизненному циклу; неверный тип сохраняется независимо от start state.

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

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

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

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

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

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

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


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