Hello all,
I've just installed Neo4j Desktop and I am trying to connect using .NET Client, but I receive always the error 404.
I explain the situation with some additional info:
I am using a new user (admin) because I don't have the password for default neo4j user, after installation system never ask me to change it so the password is the default generated during installation but I didn't find any way to retrive it.
I've tried also to change password but instructions found seems not updated, they request to use "neo4j stop" command but I realised that the current version of neo doesn't use it: if I stop the server still working correctly, if I send the start the system answer "No Java VM present...", so I suppose this not used anymore because my server is working correctly (I am running it on a Mac).
Anyway to skip the user problem I've created a new user (admin, with admin rights, in order to use as a replacement for neo4j user), I am able to connect using browser to Neo4j using admin user, so it seem new user works as expected.
When I try to connect using .NET Client I get the Error 404 response (resource not found), I've used the commands below:
var graphClient = new GraphClient(new Uri("http://localhost:7474/db/data"), "admin", "admin");
graphClient.Connect();
The user access (suing admin user) is correctly managed because if I put a wrong password the response is authentication error.
I need to access to default database (name is neo4j), I suspect I have to modify something in the Uri but so far I didn't found a solution.
I've answered on your Stack Overflow question, but for reference I'll put the answer here as well:
You are right, the GraphClient is not able to work with a 4.x database at the moment, you can use the BoltGraphClient - but you need to provide a driver instance to it to get it to work due to a change in the way Encryption works with 4.x .
//First create a 'Driver' instance.
var driver = GraphDatabase.Driver("bolt://localhost:7687", AuthTokens.Basic("neo4j", "neo"), Config.Builder.WithEncryptionLevel(EncryptionLevel.None).ToConfig());
//Pass that driver to the BoltGraphClient
var bgc = new BoltGraphClient(driver);
//Connect.
bgc.Connect();
Im trying to use the .NET Client a community edition of Neo4J 4.1. Passing the driver as shown in the solution got my bolt connection working which was great but Ive now hit a problem trying to create a node. Using the example:
var newUser = new User { Id = 456, Name = "Jim" };
graphClient.Cypher
.Create("(user:User {newUser})")
.WithParam("newUser", newUser)
.ExecuteWithoutResults();
I get this error:
Neo4j.Driver.ClientException: The old parameter syntax {param} is no longer supported. Please use $param instead (line 1, column 26 (offset: 25))
"CREATE (user:Participant {newUser})"
I tried just adding in the $newUser but it then complains that the syntax is wrong.
Is there anyway around this problem? Thanks for any advice
The problem is the syntax for parameters changed, to create a node the way you are, it should look like this:
var newUser = new User { Id = 456, Name = "Jim" };
graphClient.Cypher
.Create("(user:User $newUser)")
.WithParam("newUser", newUser)
.ExecuteWithoutResults();