| Предыдущий | Следующий |
| NAP_E_TOO_MANY_CALLS | NAP_E_SHV_CONFIG_NOT_FOUND |
NAP_E_SHV_CONFIG_EXISTED
Запрошенная конфигурация SHV уже существует
NAP_E_SHV_CONFIG_EXISTED — это HRESULT 0x80270011 (знаковое десятичное значение -2144927727, беззнаковое десятичное значение 2150039569). AllStat на основании winerror.h описывает его так: «Конфигурация SHV уже существовала». Значение обозначает ошибку, имеет код средства 0x27 и поле кода 0x0011.
Для случая попытки создать уже существующую конфигурацию SHV этот HRESULT относится к устаревшей технологии Network Access Protection: NAP недоступна начиная с Windows 10, а современные выпуски Windows Server не содержат прежних ролей NAP, HRA и HCAP. Поэтому его следует учитывать при проверке владельца и идентификатора существующей конфигурации SHV на поддерживаемых устаревших системах, в архивной телеметрии, компонентах совместимости или проектах миграции, не ожидая наличия прежней платформы на современном компьютере.
NewConfig обнаружил рассогласование или дублирование хранилища конфигураций
Microsoft документирует этот HRESULT для INapComponentConfig3::NewConfig. Network Policy Server назначает идентификатор конфигурации, уникальный в пределах SHV, а NewConfig должен создать для этого идентификатора копию данных по умолчанию. Ошибка означает, что у SHV уже есть такой идентификатор, хотя вызывающая сторона просит создать его. Microsoft отдельно отмечает, что наборы идентификаторов, известных NPS и SHV, различаются.
Как расходятся два хранилища
- Предыдущий вызов NewConfig успешно записал данные в SHV, но транзакция на стороне NPS завершилась ошибкой или была отменена.
- Конфигурация была восстановлена из резервной копии на одной стороне без восстановления соответствующих метаданных NPS.
- Повтор после тайм-аута снова выполняет создание, не проверив, была ли зафиксирована первая операция.
- При удалении политики SHV не удалил старый идентификатор конфигурации.
- Несколько узлов управления одновременно создают один и тот же назначенный идентификатор.
Сведения об идентичности конфигурации
- Запишите configID, SystemHealthEntityId валидатора SHV, идентификатор политики NPS и идентификатор транзакции или корреляции операции.
- Перечислите записи хранилища SHV или запросите нужную запись и сравните версию и хеш существующего BLOB с предполагаемой конфигурацией по умолчанию.
- Проверьте результат предшествующего вызова NewConfig и возможный тайм-аут управления, который мог скрыть успешное сохранение.
- Соберите историю резервного копирования, миграции, импорта и удаления как для NPS, так и для хранилища конфигураций SHV.
Согласование идентификатора
- С помощью GetConfigFromID определите, содержит ли существующий идентификатор предполагаемую конфигурацию или устаревшие данные.
- Если существующий объект относится к той же логической политике, продолжите документированную последовательность получения, редактирования в интерфейсе и сохранения, а не создавайте его повторно.
- Если запись потеряла владельца, удаляйте её через DeleteConfig только после подтверждения, что ни одна активная политика NPS на неё не ссылается.
- Сериализуйте операции создания и удаления для каждого SHV, чтобы два управляющих процесса не конкурировали за один идентификатор.
Отличие от соседних результатов NAP
NAP_E_SHV_CONFIG_NOT_FOUND возвращается, когда GetConfigFromID или SetConfigToID обращается к идентификатору, который не был выделен. NAP_E_CONFLICTING_ID относится к идентичности регистрации компонента, а не к конфигурации отдельной политики SHV. Дублирование config ID может быть результатом идемпотентного повтора, но также может указывать на рассогласование хранилищ, которое необходимо устранить.
Повтор и восстановление
Не перезаписывайте существующий BLOB вслепую. Прочитайте и сравните его, затем либо считайте создание уже завершённым, либо устраните рассогласование хранилищ NPS и SHV под административным контролем. Неизменный повтор NewConfig продолжит возвращать тот же результат.
Практический сценарий
NPS назначает configID 42 и вызывает NewConfig. SHV записывает BLOB по умолчанию, но управляющее соединение разрывается до того, как NPS фиксирует успех. Повторный вызов получает NAP_E_SHV_CONFIG_EXISTED. Администратор проверяет BLOB, принимает существующую конфигурацию и не создаёт второй объект политики.
Ссылки
- Microsoft: константы ошибок NAP
- Microsoft: INapComponentConfig3::NewConfig
- Microsoft: GetConfigFromID
- Microsoft: INapComponentConfig3
Нужно найти другой код? Найти другой код состояния или ошибки.