You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法连接本地Neo4j实例:.NET驱动示例运行报错求助

解决Neo4j .NET驱动ServiceUnavailableException问题

碰到这种浏览器能访问但驱动连不上的情况,大概率是配置或版本匹配的问题,我帮你梳理几个常见排查方向:

1. 驱动版本与Neo4j服务器不兼容

你的异常里显示用的是Neo4j.Driver.V1,这个版本是针对Neo4j 3.x及更早版本的。如果你的服务器是4.x/5.x,新旧版本之间的协议差异会导致连接失败。建议你升级驱动到对应版本:

  • Neo4j 4.x → 搭配Neo4j.Driver 4.x系列
  • Neo4j 5.x → 搭配Neo4j.Driver 5.x系列

可以通过NuGet更新驱动,比如安装最新稳定版:

Install-Package Neo4j.Driver

2. 连接URI用错了协议/端口

Neo4j浏览器用的是HTTP协议(端口7474),但.NET驱动默认需要使用Bolt协议(默认端口7687)。如果你的代码里写的是http://localhost:7474,肯定连不上。正确的URI应该是:

GraphDatabase.Driver("bolt://localhost:7687", ...)

3. 检查Neo4j的Bolt协议配置

打开Neo4j安装目录下的conf/neo4j.conf文件,确认以下配置项:

  • dbms.connector.bolt.enabled=true:确保Bolt连接器已开启
  • dbms.connector.bolt.listen_address=:7687:确保Bolt监听正确端口,本地访问的话默认配置即可,远程连接可能需要改成0.0.0.0:7687

修改后记得重启Neo4j服务器。

4. 认证信息不匹配

Neo4j默认开启认证,第一次通过浏览器登录时会要求修改初始密码(默认是neo4j/neo4j)。如果驱动里用的还是旧密码,就会连接失败。正确的认证代码应该是:

AuthTokens.Basic("neo4j", "你的新密码")

5. 本地防火墙/安全软件拦截

有些防火墙或杀毒软件会阻止Bolt协议的7687端口通信。你可以临时关闭防火墙测试,或者手动添加允许Neo4j进程访问7687端口的规则。

给你一个正确的Hello World示例代码

using System;
using Neo4j.Driver;

namespace Neo4jHelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            // 替换成你实际设置的密码
            var password = "your-custom-password";
            
            using var driver = GraphDatabase.Driver("bolt://localhost:7687", AuthTokens.Basic("neo4j", password));
            using var session = driver.Session();
            
            var result = session.Run(
                "CREATE (n:Greeting) SET n.message = $message RETURN n.message + ', from node ' + id(n)",
                new { message = "Hello, World!" });
            
            var greeting = result.Single()[0].As<string>();
            Console.WriteLine(greeting);
        }
    }
}

按照上面的步骤逐一排查,应该就能解决你的问题了。

内容的提问来源于stack exchange,提问作者Xedni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:48:59