Я подключался. Net Код ядра из контейнера Docker к базе данных Neo4j. Сначала я попытался использовать Neo4jClient, но столкнулся с проблемами с подключением http из контейнера docker. Затем я попробовал Neo4j.Driver напрямую с болтовым соединением, используя host. docker .internal к псевдониму localhost. Это работало нормально. Я переключился обратно на Neo4jClient с помощью болта (снова изнутри Docker), но с ошибкой. Спасибо за любую помощь.
Neo4j.Driver.V1.ServiceUnavailableException
HResult=0x80131500
Message=Connection with the server breaks due to SecurityException: Failed to establish encrypted connection with server bolt://host.docker.internal:7687/.
Source=Neo4j.Driver
Обновление: после помощи Криса Скардона ниже. Я включил SSL для болта в соответствии с разделом Пример 11.2. Включить Bolt SSL. В соответствии с инструкциями здесь, в Neo4j
Приведенный ниже код с использованием Neo4j.Driver напрямую работает и обновляет БД с 12 организациями. Он запускается из контейнера. Net Core Docker и использует хост. docker .internal. Я ожидал бы, что это не будет работать без конфигурации шифрования. Но это так.
IDriver driver = GraphDatabase.Driver("bolt://host.docker.internal:7687", AuthTokens.Basic("neo4j", "xxxxx"));
IAsyncSession session = driver.AsyncSession(o => o.WithDatabase("neo4j"));
Этот код, использующий Neo4jClient, не работает. Я изначально запускал его в контейнере docker, как указано выше, и подумал, что это может быть Но все еще есть проблема без контейнера
IDriver driver = GraphDatabase.Driver("bolt://localhost:7687", AuthTokens.Basic("neo4j", "xxxxx"), Config.Builder.WithEncryptionLevel(EncryptionLevel.Encrypted).ToConfig());
var client = new BoltGraphClient(driver);
Исключения:
- Соединение с сервером разрывается из-за SecurityException: Не удалось установить sh зашифрованное соединение с сервером болтом : // локальный: 7687 /.
- IOException: аутентификация не удалась, потому что удаленная сторона закрыла транспортный поток.
Ничего не появляется в журналах Neo4j. У меня нет никакого специального c кода в. Net Базовом коде API для поддержки SSL и поиска в Google 2-го исключения, с множеством неверных результатов TLS. Так что я исследую это.