Esta sección describe las opciones de conexión y autenticación de MongoDB disponibles en el controlador .NET/C#. Puede configurar su conexión usando la URI de conexión o un objeto MongoClientSettings.
Uso del URI de conexión
Si pasas un URI de conexión al constructor MongoClient, puedes incluir opciones de conexión en la string como pares <name>=<value>. En el siguiente ejemplo, el URI de la conexión contiene la opción connectTimeoutMS con un valor de 60000 y la opción tls con un valor de true:
using MongoDB.Driver; // Sets the connection URI const string connectionUri = "mongodb+srv://sample.host:27017/?connectTimeoutMS=60000&tls=true"; // Creates a new client and connects to the server var client = new MongoClient(connectionUri);
Utilizando MongoClientSettings
Puedes usar un objeto MongoClientSettings para configurar la conexión en el código en lugar de en una URI de conexión. Configurar la conexión de esta manera facilita cambiar la configuración en tiempo de ejecución, ayuda a detectar errores durante la compilación y proporciona más opciones de configuración que la URI de conexión.
Para usar un objeto MongoClientSettings, crea una instancia de la clase, configura sus propiedades y pásala como un argumento al constructor MongoClient:
//const string connectionUri = "mongodb+srv://sample.host:27017/?connectTimeoutMS=60000&tls=true"; // Creates a MongoClientSettings object var settings = new MongoClientSettings() { Scheme = ConnectionStringScheme.MongoDBPlusSrv, Server = new MongoServerAddress("sample.host", 27017), ConnectTimeout = new TimeSpan(0, 0, 60), UseTls = true }; // Creates a new client and connects to the server var client = new MongoClient(settings);
Opciones de conexión
La siguiente tabla enumera todas las opciones de conexión disponibles en la clase MongoClientSettings y, si es posible, cómo lograr el mismo resultado en la cadena de conexión. Si una propiedad MongoClientSettings se asigna a más de una opción en la cadena de conexión, el Ejemplo de URI de conexión muestra todas las opciones relevantes.
Nota
Si estás usando un parámetro de query para una duración de tiempo, el valor debe estar en milisegundos. Por ejemplo, para especificar 60 segundos, usa el valor 60000. Si está utilizando un objeto MongoClientSettings para una duración temporal, utiliza el valor TimeSpan apropiado.
MongoClientSettings propiedad | Descripción | |||
|---|---|---|---|---|
PermitirTlsInseguro | Especifica si se deben relajar las restricciones de TLS tanto como sea posible. Esto puede incluir | |||
NombreDeLaAplicacion | El nombre de la aplicación que el driver pasa al servidor en los metadatos del cliente como parte del | |||
Opciones de autoencriptación | Configuración para el cifrado automático del lado del cliente. | |||
ClusterConfigurator | Opciones de configuración de bajo nivel para sockets, TLS, clúster y otros. | |||
compresores | Los tipos de compresión preferidos, en orden, para los mensajes del protocolo de conexión enviados a | |||
ConnectTimeout | La duración de tiempo que el driver intenta establecer una sola conexión de socket TCP | |||
Credencial | Configuración de cómo el driver se autentica en el servidor. Esto incluye | |||
directConnection | Especifica si se debe forzar el despacho de todas las operaciones al host. | |||
IntervaloDeLatidos | El intervalo entre las comprobaciones regulares de supervisión del servidor. Debe ser mayor o | |||
HeartbeatTimeout | La cantidad de tiempo que un socket de supervisión puede estar inactivo antes de que se agote el tiempo de espera. | |||
IPv6 | Especifica si la dirección del host está en formato IPv6. | |||
IsFrozen | Indica si la configuración se ha congelado. La configuración congelada no se puede cambiar. | |||
LinqProvider | El proveedor LINQ a utilizar. | |||
loadBalanced | Especifica si el driver está conectado a un balanceador de carga. Puedes establecer esta
Tipo de dato: | |||
LocalThreshold | La ventana de latencia para la elegibilidad del servidor. Si el tiempo de ida y vuelta de un servidor es más largo | |||
LoggingSettings | La configuración utilizada para el registro. | |||
maxConnecting | El mayor número de conexiones que un pool de conexiones de drivers puede estar | |||
MaxConnectionIdleTime | El tiempo que una conexión puede estar inactiva antes de que el driver la cierre. | |||
MaxConnectionLifeTime | El tiempo que una conexión puede mantener en el pool antes de expirar. | |||
MaxConnectionPoolSize | El mayor número de clientes o conexiones que el driver puede crear en su | |||
MinConnectionPoolSize | El número de conexiones que el driver debe crear y mantener en el | |||
readConcern | El nivel de consistencia de lectura por defecto del cliente. | |||
ReadEncoding | La codificación UTF-8 que se utilizará para la deserialización de string. | |||
preferencia de lectura | La configuración de preferencia de lectura por defecto del cliente. Puedes incluir el parámetro | |||
Nombre del set de réplicas | El nombre del set de réplicas al que conectarse. | |||
retryReads | Activar las lecturas reintentables. | |||
retryWrites | Habilita la escritura reintentable. | |||
esquema | Especifica si se debe usar el formato de cadena de conexión estándar ( | |||
Server | El host y el número de puerto donde se ejecuta MongoDB. | |||
ServerApi | Permite optar por el control de versiones de Stable API. Consulte | |||
serverMonitoringMode | Especifica el protocolo de supervisión del servidor que se va a utilizar. Cuando | |||
servidor | Los nodos del clúster donde se ejecuta MongoDB. | |||
ServerSelectionTimeout | El tiempo que el driver intenta seleccionar un servidor antes de agotar el tiempo de espera. | |||
SocketTimeout | La duración de tiempo que el driver intenta enviar o recibir a través de un socket antes de que se | |||
srvMaxHosts | El mayor número de resultados de SRV que se seleccionarán al azar al rellenar inicialmente | |||
SrvServiceName | El nombre del servicio de los registros de recursos SRV | |||
SslSettings | Opciones de TLS/SSL, incluidos certificados de cliente, gestión de revocaciones y | |||
UseTls | Especifica si se requiere TLS para las conexiones al servidor. Si utilizas | |||
WaitQueueTimeout | El tiempo que el driver intenta extraer una conexión del pool de conexiones de un | |||
Nivel de confirmación de escritura (write concern) | La configuración predeterminada del nivel de confirmación de escritura (write concern), incluido el tiempo de espera de escritura y | |||
WriteEncoding | Especifica si la serialización de string UTF-8 es estricta o indulgente. Con |