| Предыдущий | Следующий |
| PEER_E_NO_CLOUD | PEER_E_INVALID_RECORD |
PEER_E_CLOUD_NAME_AMBIGUOUS
Какой peer contract отклонён
PEER_E_CLOUD_NAME_AMBIGUOUS — HRESULT 0x80631005 означает, что указанная ссылка PNRP соответствует нескольким cloud одного scope и поэтому не выбирает однозначное пространство имён. PEER_E_CLOUD_NAME_AMBIGUOUS — Базовое описание сообщает результат; для диагностики нужен контракт данных и жизненный цикл, используемые перечислением PNRP cloud, необязательным cloud name в PeerGroupJoin и вызовами разрешения PNRP.
PNRP — Winsock namespace provider, разрешающий peer names в endpoint information внутри IPv6-based cloud. Выбор cloud, registration и endpoint enumeration — разные этапы.
Минимальный диагностический пакет
| Элемент | Доказательство |
|---|---|
| Исходные данные | Сохраните все перечисленные имена и scope облаков, идентификаторы интерфейсов, переданную вызывающим кодом строку cloud и значение приглашения или конфигурации, из которого она получена. |
| Контекст-владелец | Запишите Windows user, process integrity, graph/group handle, database path и выбранный cloud. |
| Предыдущий успех | Сохраните последний успешный результат create/open/enumerate/parse/register/sign-in, создавший объект. |
| Порядок результатов | Сохраняйте первый HRESULT, чтобы cleanup failures не заменили код, отклонивший запрос. |
Целевое воспроизведение
повторите операцию с полным именем cloud, возвращённым перечислением, и сравните результат с неоднозначным сокращённым именем. Используйте disposable identities/groups, если тест публикует names, создаёт credentials или изменяет replicated database.
Почему код сравнения отличается
PEER_E_NO_CLOUD отличается тем, что при неоднозначности существует несколько кандидатов, а no-cloud означает отсутствие любого подходящего cloud. Диагностический отчёт должен сохранять symbolic constant и unsigned hexadecimal value.
Рекомендуемое изменение
сохраняйте и передавайте точный идентификатор cloud, а не только обозначение его scope. Не удаляйте все peer databases, certificate store или firewall rules: широкие сбросы стирают доказательства и не подтверждают исправление caller contract.
Подтверждение исправления
- Исходный input теперь проходит точную проверку, представленную этим HRESULT.
- Операция достигает требуемого результата для графа, группы, записи, PNRP или Peer Collaboration.
- Несвязанные identity material, membership credentials и replicated records остаются неизменными.
Инструментирование и регрессионное покрытие
Фиксируйте первый неудачный вызов, а не более поздний результат cleanup. Решающее значение имеют все перечисленные имена и scope облаков, идентификаторы интерфейсов, переданная строка cloud и исходное значение приглашения или конфигурации.
| Регрессионный уровень | Проверяемый случай | Условие прохождения |
|---|---|---|
| Входные данные и время жизни объекта | Постройте минимальный объект, в котором ссылка PNRP соответствует нескольким cloud одного scope и не позволяет однозначно выбрать пространство имён. | В тесте фиксируются владеющий дескриптор, контекст пользователя и точный API из перечисления PNRP cloud, необязательного cloud name в PeerGroupJoin и вызовов разрешения PNRP. |
| Контролируемое сравнение | повторите операцию с полным именем cloud, возвращённым перечислением, и сравните результат с неоднозначным сокращённым именем. | Между неуспешным и успешным запуском изменяется только целевое encoding peer name. |
| Путь восстановления | сохраняйте и передавайте точный идентификатор cloud, а не только обозначение его scope. | Нужная операция завершается успешно без замены несвязанной endpoint registration. |
Сохраняйте unsigned hexadecimal HRESULT, symbolic names и timestamps в одной trace. Такая запись позволяет регрессионному тесту отличить состояние пространства имён cloud от последующего сбоя транспорта, авторизации или приложения.
Технические ссылки
- Microsoft: обзор PNRP — источник документирует соответствующую peer boundary.
- Microsoft Open Specifications: PNRP Version 4.0 — источник документирует соответствующую peer boundary.
- Microsoft: peer names — источник документирует соответствующую peer boundary.
- Microsoft: регистрация peer name — источник документирует соответствующую peer boundary.
Нужно найти другой код? Найти другой код состояния или ошибки.