| Предыдущий | Следующий |
| PEER_E_CONNECTION_NOT_FOUND | PEER_E_ALREADY_LISTENING |
PEER_E_CONNECT_SELF
Где peer stack отклоняет операцию
PEER_E_CONNECT_SELF — HRESULT 0x80630106 означает, что запрос прямого соединения разрешился в локальный узел вместо отдельного peer. PEER_E_CONNECT_SELF — Рассматривайте это как результат жизненного цикла графа, а не как общий сбой peer-сети.
Peer Graphing поддерживает связанный набор nodes, реплицирует records и имеет отдельные lifetimes graph, node, connection и event. Открытая graph database не означает, что node подключён.
Данные, которые нужно сохранить до повтора
- Зафиксируйте первый отказ среди PeerGraphOpenDirectConnection или PeerGroupOpenDirectConnection и перечисления узлов.
- Сохраните локальный node ID и адреса, целевой node ID, список разрешённых endpoint, identity графа/группы и алгоритм выбора endpoint.
- Поместите успешное создание/discovery, события изменения состояния и неудачный вызов на одну timeline.
- Сохраняйте peer name, identity, идентификаторы записей, данные приглашений и endpoint в исходном представлении Unicode или в двоичном виде.
Контролируемая изоляция
исключите локальный узел из перечисления и сравните попытку соединения с заведомо удалённым узлом с попыткой через локальную запись. Меняйте только одну переменную; одновременные изменения identity, cloud, database и firewall state уничтожают причинную привязку.
| Контрольная точка | Вопрос для PEER_E_CONNECT_SELF |
|---|---|
| До API | Было ли требуемое состояние узла или соединения получено в этом процессе и контексте пользователя? |
| На HRESULT | Сохраните локальный node ID и адреса, целевой node ID, список разрешённых endpoint, identity графа/группы и алгоритм выбора endpoint. |
| После исправления | отбрасывайте собственные endpoint до открытия прямого соединения и не смешивайте identity узла с отображаемыми или friendly names. |
Соседний результат
PEER_E_PNRP_DUPLICATE_PEER_NAME отличается тем, что дублированная публикация может дать несколько endpoint для одного имени, но непосредственный дефект здесь — соединение с собственным локальным endpoint. Сохраняйте оба HRESULT в хронологическом порядке: исправление предпосылки может открыть следующий этап validation.
Безопасная реакция
отбрасывайте собственные endpoint до открытия прямого соединения и не смешивайте identity узла с отображаемыми или friendly names. Перед изменениями сохраняйте durable graph databases, group exports, identity certificates и invitation artifacts.
Инструментирование и регрессионное покрытие
Фиксируйте первый неудачный вызов, а не более поздний результат cleanup. Решающее значение имеют локальный node ID и адреса, целевой node ID, список разрешённых endpoint, identity графа/группы и алгоритм выбора endpoint.
| Регрессионный уровень | Проверяемый случай | Условие прохождения |
|---|---|---|
| Входные данные и время жизни объекта | Постройте минимальный сценарий, в котором запрос прямого соединения выбирает локальный узел вместо другого peer. | В тесте фиксируются владеющий дескриптор, контекст пользователя и точный API из PeerGraphOpenDirectConnection или PeerGroupOpenDirectConnection и перечисления узлов. |
| Контролируемое сравнение | исключите локальный узел из перечисления и сравните попытку соединения с заведомо удалённым узлом с попыткой через локальную запись. | Между неуспешным и успешным запуском изменяется только целевое состояние node или connection. |
| Путь восстановления | отбрасывайте собственные endpoint до открытия прямого соединения и не смешивайте identity узла с отображаемыми или friendly names. | Нужная операция завершается успешно без замены несвязанной replicated graph database. |
Сохраняйте unsigned hexadecimal HRESULT, symbolic names и timestamps в одной trace. Такая запись позволяет регрессионному тесту отличить состояние жизненного цикла графа от последующего сбоя транспорта, авторизации или приложения.
Ссылки
- Microsoft: обзор Peer Graphing API — источник документирует соответствующую peer boundary.
- Microsoft Open Specifications: протокол Peer-to-Peer Graphing — источник документирует соответствующую peer boundary.
- Microsoft: Security Service Providers for Peer Graphing — источник документирует соответствующую peer boundary.
- Microsoft: общие return codes Peer Infrastructure — источник документирует соответствующую peer boundary.
Нужно найти другой код? Найти другой код состояния или ошибки.