无法连接本地Neo4j实例:.NET驱动示例运行报错求助
碰到这种浏览器能访问但驱动连不上的情况,大概率是配置或版本匹配的问题,我帮你梳理几个常见排查方向:
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
相关产品推荐
相关产品推荐

