C# y .NET

Conecta una aplicación de C# y .NET a TeselaDB con el driver oficial de MongoDB.

Conecta una aplicación de C# y .NET a TeselaDB con el driver oficial de MongoDB para C# y .NET. TeselaDB se presenta como un mongos, así que el driver funciona sin cambios.

Requisitos

  • .NET 6 o posterior.
  • La dirección de uno o más nodos, un usuario con readWrite sobre la base y el fichero pki/ca.pem del clúster.

Instala el driver

Shell
dotnet add package MongoDB.Driver

Guarda la cadena de conexión

Pon la cadena en una variable de entorno y no la escribas en el código:

Shell
export TESELADB_URI="mongodb://usuario:<contraseña>@node-01:27017,node-02:27017/shop?tls=true"

Añade la CA a los certificados del sistema

El driver de .NET comprueba el certificado del nodo con los certificados de confianza del sistema, de modo que la CA del clúster tiene que estar entre ellos antes de que tu aplicación se conecte. En Linux, la añades así:

Shell
sudo cp ca.pem /usr/local/share/ca-certificates/teseladb.crt
sudo update-ca-certificates

En la cadena de conexión de tu aplicación deja solo la opción tls=true, sin tlsCAFile.

Escribe y lee un documento

C#
var client = new MongoClient(Environment.GetEnvironmentVariable("TESELADB_URI"));
var orders = client.GetDatabase("shop").GetCollection<BsonDocument>("orders");
orders.InsertOne(new BsonDocument("total", 149.5));
Console.WriteLine(orders.CountDocuments(FilterDefinition<BsonDocument>.Empty));

Comprobar

El programa escribe el número de documentos de orders, que crece en uno cada vez que lo ejecutas.

Problemas frecuentes

  • La conexión se cierra antes de autenticar porque falta tls=true en la cadena.
  • El driver no confía en el certificado del nodo porque no tiene la CA de este clúster.

Ver también