gpt4 book ai didi

c# - .Net与Bolt URI的连接失败,但Neo4jClient失败,但Neo4j.Driver失败

转载 作者:行者123 更新时间:2023-12-02 20:35:43 28 4
gpt4 key购买 nike

我一直在将.Net Core代码从Docker容器内连接到Neo4j DB。我首先尝试使用Neo4jClient,但在docker容器中遇到了http连接问题。然后,我使用host.docker.internal别名localhost直接通过 bolt 连接尝试了Neo4j.Driver。这很好。我用 bolt (再次从Docker内部)换回了Neo4jClient,但是失败了。
谢谢你的帮助。

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

更新:
以下是Chris Skardon的帮助。我按照示例11.2的部分打开了ssl的 bolt 。启用Bolt SSL。
As per instructions here at Neo4j

以下使用Neo4j.Driver的代码可以直接使用12个组织来工作和更新数据库。
它从.Net Core Docker容器中运行,并使用host.docker.internal。如果没有Encryption配置,我会期望它无法正常工作。但是确实如此。
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);

异常(exception)是:
  • 由于SecurityException,与服务器的连接断开:失败
    与服务器建立加密连接
    ://:// localhost:7687 /。”。
  • IOException:身份验证失败,因为
    远程方已关闭传输流。

  • Neo4j日志中没有任何内容。我在.Net Core API代码中没有用于支持SSL的任何特定代码,并且谷歌搜索第二个异常会返回很多错误的TLS结果。因此,我正在探索这一点。

    最佳答案

    Neo4j的4.x版本需要设置Encryption,Neo4jClient实际上并没有提供一种简便的方法,因此您需要传递IDriver实例,如下所示:

    var driver = GraphDatabase.Driver("bolt://localhost:7687", AuthTokens.Basic("neo4j", "neo"), Config.Builder.WithEncryptionLevel(EncryptionLevel.None).ToConfig());
    var client = new BoltGraphClient(driver);

    编辑

    我已经对此进行了测试-问题实际上是相反的-除非您确实有SSL证书设置,否则您需要将加密级别设为“无”

    关于c# - .Net与Bolt URI的连接失败,但Neo4jClient失败,但Neo4j.Driver失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61048582/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com