Overview
Esta página describe las opciones de conexión disponibles en el controlador .NET/C# y explica cómo aplicarlas a su conexión MongoDB.
Cómo especificar las opciones de conexión
Las siguientes secciones describen las formas en que puede especificar las opciones de conexión.
Uso de la URI de conexión
Si pasa una URI de conexión a la MongoClient En el constructor, puede incluir opciones de conexión en la cadena como pares <name>=<value>. En el siguiente ejemplo, el URI de conexión contiene la opción connectTimeoutMS con un valor de 60000 y la opción tls con un valor de true:
const string uri = "mongodb+srv:/localhost:27017/?connectTimeoutMS=60000&tls=true";
Para obtener más información sobre las opciones que puede especificar en una URI de conexión, consulte Opciones de cadena de conexión en el manual del servidor MongoDB.
Uso de MongoClientSettings
Puede 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 el cambio de ajustes en tiempo de ejecución, ayuda a detectar errores durante la compilación y ofrece más opciones de configuración que la URI de conexión.
Para establecer opciones de conexión en un objeto MongoClientSettings, realice los siguientes pasos:
Crea una instancia de la clase
MongoClientSettingsEstablecer propiedades en la instancia para configurar la conexión
Pasar la instancia al constructor
MongoClient
El siguiente ejemplo de código muestra cómo realizar los pasos anteriores:
var settings = new MongoClientSettings() { Scheme = ConnectionStringScheme.MongoDBPlusSrv, Server = new MongoServerAddress("localhost", 27017), ConnectTimeout = TimeSpan.FromMilliseconds(60000), UseTls = true }; var client = new MongoClient(settings);
También puede crear un objeto MongoClientSettings a partir de una cadena de conexión llamando al método MongoClientSettings.FromConnectionString() y pasando la cadena de conexión, como se muestra en el siguiente ejemplo. Esto es útil si ya tiene una cadena de conexión, pero desea modificar algunos ajustes mediante programación, o si necesita especificar ajustes que no están disponibles en la cadena de conexión.
const string connectionUri = "mongodb+srv://localhost:27017/?connectTimeoutMS=60000&tls=true"; var settings = MongoClientSettings.FromConnectionString(connectionUri); settings.ServerApi = new ServerApi(ServerApiVersion.V1); var client = new MongoClient(settings);
Alternativamente, puedes crear un objeto MongoClientSettings a partir de un objeto MongoUrl llamando al método MongoClientSettings.FromUrl() y pasando el objeto MongoUrl, como se muestra en el siguiente ejemplo. Esto es útil si ya tienes un objeto MongoUrl pero deseas especificar configuraciones que no están disponibles en la clase MongoUrl.
const string connectionUri = "mongodb+srv://localhost:27017/?connectTimeoutMS=60000&tls=true"; var url = new MongoUrl(connectionUri); var settings = MongoClientSettings.FromUrl(url); settings.ServerApi = new ServerApi(ServerApiVersion.V1); var client = new MongoClient(settings);
Usando MongoUrlBuilder
Puede usar un objeto MongoUrlBuilder para crear y configurar las opciones de conexión en un objeto MongoUrl. Un objeto MongoUrl es una representación fuertemente tipada de una URI de conexión y resulta útil al leer una URI de conexión directamente desde otra fuente. Usar un objeto MongoUrl ofrece muchas de las mismas ventajas que usar un objeto MongoClientSettings, aunque ambas clases contienen propiedades y métodos diferentes.
Para usar un objeto MongoUrlBuilder, cree una instancia de la clase y configure las propiedades necesarias. Para crear un objeto MongoUrl a partir de MongoUrlBuilder, llame al método MongoUrlBuilder.ToMongoUrl(). Puede pasar el objeto MongoUrl al constructor MongoClient. El siguiente ejemplo de código muestra este proceso:
const string connectionUri = "mongodb+srv://localhost:27017/?connectTimeoutMS=60000&tls=true"; var builder = new MongoUrlBuilder(connectionUri) { ServerMonitoringMode = MongoDB.Driver.Core.Servers.ServerMonitoringMode.Stream }; var url = builder.ToMongoUrl(); var client = new MongoClient(url);
Opciones de conexión
Las siguientes secciones describen las opciones de conexión disponibles en el controlador .NET/C# y cómo especificarlas mediante un objeto MongoClientSettings o MongoUrlBuilder.
Opciones del conjunto de réplicas
Conexión directa
Especifica si se debe forzar el envío de todas las operaciones al host. Si se especifica esta opción, el controlador no acepta el formato de conexión de la lista de semillas DNS. En su lugar, se debe usar el formato de URI de conexión estándar. El valor predeterminado false es.
Esta propiedad debe establecerse en false si especifica más de un nombre de host.
var settings = new MongoClientSettings { DirectConnection = true, };
Nombre del conjunto de réplicas
El nombre del conjunto de réplicas al que se conectará. El valor predeterminado es null.
var settings = new MongoClientSettings { ReplicaSetName = "yourReplicaSet", };
Conexión directa
Especifica si se debe forzar el envío de todas las operaciones al host. Si se especifica esta opción, el controlador no acepta el formato de conexión de la lista de semillas DNS. En su lugar, se debe usar el formato de URI de conexión estándar. El valor predeterminado false es.
Esta propiedad debe establecerse en false si especifica más de un nombre de host.
var builder = new MongoUrlBuilder { DirectConnection = true, };
Nombre del conjunto de réplicas
El nombre del conjunto de réplicas al que se conectará. El valor predeterminado es null.
var builder = new MongoUrlBuilder { ReplicaSetName = "yourReplicaSet", };
Opciones de TLS
PermitirTlsInseguros
Especifica si se deben flexibilizar las restricciones TLS al máximo. Esto puede incluir la posibilidad de permitir certificados no válidos o nombres de host no coincidentes. El valor predeterminado es false.
Si esta propiedad se establece en true y SslSettings.CheckCertificateRevocation se establece en false, el controlador .NET/C# generará una excepción.
El siguiente ejemplo de código muestra cómo establecer esta opción en true:
var settings = new MongoClientSettings { AllowInsecureTls = true, };
Configuración SSL
Opciones de TLS/SSL, incluyendo certificados de cliente, gestión de revocaciones y protocolos TLS/SSL habilitados y deshabilitados. El valor predeterminado es null.
Si SslSettings.CheckCertificateRevocation se establece en false y AllowInsecureTls se establece en true, el controlador .NET/C# genera una excepción.
var settings = new MongoClientSettings(); settings.SslSettings = new SslSettings() { CheckCertificateRevocation = false, ClientCertificateSelectionCallback = new LocalCertificateSelectionCallback() { ... }, ClientCertificates = new List<X509Certificate>() { ... }, EnabledSslProtocols = SslProtocols.Tls13, ServerCertificateValidationCallback = new RemoteCertificateValidationCallback() { ... } };
UsarTls
Especifica si se debe requerir TLS para las conexiones al servidor. Si usas un esquema de "mongodb+srv" o especificas otras opciones de TLS, esta opción será por defecto true. En caso contrario, el valor será por defecto false.
var settings = new MongoClientSettings { UseTls = true, };
PermitirTlsInseguros
Especifica si se deben flexibilizar las restricciones TLS al máximo. Esto puede incluir la posibilidad de permitir certificados no válidos o nombres de host no coincidentes. El valor predeterminado es false.
Si esta propiedad se establece en true y SslSettings.CheckCertificateRevocation se establece en false, el controlador .NET/C# generará una excepción.
El siguiente ejemplo de código muestra cómo establecer esta opción en true:
var builder = new MongoUrlBuilder { AllowInsecureTls = true, };
Comprobación de revocación de certificado de desactivación de Tls
Si se deshabilita la comprobación de revocación de certificados durante el protocolo de enlace TLS. El valor predeterminado es false.
var builder = new MongoUrlBuilder { TlsDisableCertificateRevocationCheck = true };
UsarTls
Especifica si se debe requerir TLS para las conexiones al servidor. Si usas un esquema de "mongodb+srv" o especificas otras opciones de TLS, esta opción será por defecto true. En caso contrario, el valor será por defecto false.
var builder = new MongoUrlBuilder { UseTls = true, };
Opciones de tiempo de espera
Tiempo de espera de conexión
El tiempo que el controlador tarda en establecer una conexión de socket TCP con el servidor antes de agotar el tiempo de espera. El valor predeterminado es 30 segundos.
var settings = new MongoClientSettings { ConnectTimeout = TimeSpan.FromSeconds(60), };
Tiempo de espera del socket
El tiempo que el controlador intenta enviar o recibir datos en un socket antes de agotar el tiempo de espera. El valor predeterminado lo establece el sistema operativo.
var settings = new MongoClientSettings { ConnectTimeout = TimeSpan.FromSeconds(60), };
Tiempo de espera de conexión
El tiempo que el controlador tarda en establecer una conexión de socket TCP con el servidor antes de agotar el tiempo de espera. El valor predeterminado es 30 segundos.
var builder = new MongoUrlBuilder { ConnectTimeout = TimeSpan.FromSeconds(60), };
Tiempo de espera del socket
El tiempo que el controlador intenta enviar o recibir datos en un socket antes de agotar el tiempo de espera. El valor predeterminado lo establece el sistema operativo.
var builder = new MongoUrlBuilder { SocketTimeout = TimeSpan.FromSeconds(60), };
Opciones de compresión
Compresores
Los tipos de compresión preferidos, en orden, para los mensajes de protocolo de cable enviados o recibidos del servidor. El controlador utiliza el primero de estos tipos de compresión que el servidor admite. El valor predeterminado es null.
var settings = new MongoClientSettings { Compressors = new List<CompressorConfiguration>() { new(CompressorType.Zlib), new(CompressorType.Snappy) } };
Compresores
Los tipos de compresión preferidos, en orden, para los mensajes de protocolo de cable enviados o recibidos del servidor. El controlador utiliza el primero de estos tipos de compresión que el servidor admite. El valor predeterminado es null.
var builder = new MongoUrlBuilder { Compressors = new List<CompressorConfiguration>() { new(CompressorType.Zlib), new(CompressorType.Snappy) } };
Opciones del pool de conexiones
MaxConnecting
El máximo número de conexiones que el grupo de conexiones de un controlador puede establecer simultáneamente. El valor predeterminado es 2.
var settings = new MongoClientSettings { MaxConnecting = 3, };
Tiempo máximo de inactividad de la conexión
El tiempo que una conexión puede estar inactiva antes de que el driver la cierre. El valor por defecto es 10 minutos.
var settings = new MongoClientSettings { MaxConnectionIdleTime = TimeSpan.FromMinutes(8), };
Tiempo máximo de vida de la conexión
El tiempo que una conexión puede mantener en el pool antes de expirar. El valor por defecto es 30 minutos.
var settings = new MongoClientSettings { MaxConnectionLifeTime = TimeSpan.FromMinutes(40), };
MaxConnectionPoolSize
El número máximo de clientes o conexiones que el controlador puede crear en su grupo de conexiones. Este recuento incluye las conexiones en uso. El valor predeterminado es 100.
var settings = new MongoClientSettings { MaxConnectionPoolSize = 150, };
Tamaño mínimo del grupo de conexiones
El número de conexiones que el controlador crea y mantiene en el pool de conexiones incluso cuando no se realizan operaciones. Este recuento incluye las conexiones en uso. El valor predeterminado es 0.
var settings = new MongoClientSettings { MinConnectionPoolSize = 3, };
Tiempo de espera de la cola de espera
El tiempo que el controlador intenta verificar una conexión del grupo de conexiones de un servidor antes de que se agote el tiempo de espera. El valor predeterminado es dos minutos.
var settings = new MongoClientSettings { WaitQueueTimeout = TimeSpan.FromSeconds(30), };
MaxConnecting
El máximo número de conexiones que el grupo de conexiones de un controlador puede establecer simultáneamente. El valor predeterminado es 2.
var builder = new MongoUrlBuilder { MaxConnecting = 3, };
Tiempo máximo de inactividad de la conexión
El tiempo que una conexión puede estar inactiva antes de que el driver la cierre. El valor por defecto es 10 minutos.
var builder = new MongoUrlBuilder { MaxConnectionIdleTime = TimeSpan.FromMinutes(8), };
Tiempo máximo de vida de la conexión
El tiempo que una conexión puede mantener en el pool antes de expirar. El valor por defecto es 30 minutos.
var builder = new MongoUrlBuilder { MaxConnectionLifeTime = TimeSpan.FromMinutes(40), };
MaxConnectionPoolSize
El número máximo de clientes o conexiones que el controlador puede crear en su grupo de conexiones. Este recuento incluye las conexiones en uso. El valor predeterminado es 100.
var builder = new MongoUrlBuilder { MaxConnectionPoolSize = 150, };
Tamaño mínimo del grupo de conexiones
El número de conexiones que el controlador crea y mantiene en el pool de conexiones incluso cuando no se realizan operaciones. Este recuento incluye las conexiones en uso. El valor predeterminado es 0.
var builder = new MongoUrlBuilder { MinConnectionPoolSize = 3, };
Tiempo de espera de la cola de espera
El tiempo que el controlador intenta verificar una conexión del grupo de conexiones de un servidor antes de que se agote el tiempo de espera. El valor predeterminado es dos minutos.
var builder = new MongoUrlBuilder { WaitQueueTimeout = TimeSpan.FromSeconds(30), };
Opciones de nivel de confirmación de escritura
Escribir preocupación
Configuración WriteConcern.Acknowledged predeterminada de problemas de escritura, incluyendo el tiempo de espera de escritura y el registro en diario, para el cliente. El valor predeterminado es. Consulte "Problema de escritura" en el manual del servidor MongoDB para obtener más información.
var settings = new MongoClientSettings(); settings.WriteConcern = MongoDB.Driver.WriteConcern.Acknowledged; settings.WriteConcern = new WriteConcern( w: 1, wTimeout: new TimeSpan(0, 0, 0, 30, 0), fsync: true, journal: true );
Sincronización F
El componente FSync de la operación de escritura. El valor predeterminado false es. Para obtener más información sobre el fsync comando, consulte fsync en el manual del servidor MongoDB.
var builder = new MongoUrlBuilder { FSync = true };
Journal
El j componente del problema de escritura, que solicita confirmación de que las instancias de MongoDB han escrito en el diario en disco. El valor predeterminado depende del valor de la writeConcernMajorityJournalDefault configuración. Para obtener más información sobre la j opción, consulte "Problema de escritura" en el manual del servidor MongoDB.
var builder = new MongoUrlBuilder { Journal = true };
W
El w componente de la solicitud de escritura, que solicita confirmación de que la operación de escritura se ha propagado a un número específico de instancias de MongoDB. El valor predeterminado es "majority" 1o, según el número de árbitros y nodos con derecho a voto. Para obtener más información sobre la w opción, consulte la sección "Respuesta de escritura" en el manual del servidor MongoDB.
var builder = new MongoUrlBuilder { W = 2 };
Tiempo de espera W
El wtimeout componente de la solicitud de escritura, que especifica un límite de tiempo para dicha solicitud. Para obtener más información sobre la wtimeout opción, consulte "Solicitud de escritura" en el manual de MongoDB Server.
var builder = new MongoUrlBuilder { WTimeout = TimeSpan.FromSeconds(5) };
Opciones de lectura de inquietudes
LeerPreocupación
La preocupación de lectura del cliente. El valor predeterminado ReadConcern.Default es. Para más información, consulte la preocupación de lectura en el manual de MongoDB Server.
var settings = new MongoClientSettings { ReadConcern = MongoDB.Driver.ReadConcern.Local, };
Leer nivel de preocupación
Nivel de preocupación de lectura del cliente. El valor predeterminado ReadConcern.Local es. Para más información, consulte la preocupación de lectura.
var builder = new MongoUrlBuilder { ReadConcernLevel = MongoDB.Driver.ReadConcernLevel.Local, };
Opciones de preferencia de lectura
Preferencia de lectura
Configuración predeterminada de preferencia de lectura del cliente. MaxStaleness representa el retardo de replicación máximo, en tiempo real, que un servidor secundario puede experimentar y aún ser elegible para la selección del servidor. El valor predeterminado ReadPreference.Primary es. Especificar -1 significa que no hay un máximo. Consulte la Preferencia de Lectura en el manual del Servidor MongoDB para obtener más información.
var settings = new MongoClientSettings { ReadPreference = MongoDB.Driver.ReadPreference.PrimaryPreferred, };
Configuración predeterminada de preferencia de lectura del cliente. MaxStaleness representa el retardo de replicación máximo, en tiempo real, que un servidor secundario puede experimentar y aún ser elegible para la selección del servidor. El valor predeterminado ReadPreference.Primary es. Especificar -1 significa que no hay un máximo. Consulte la Preferencia de Lectura en el manual del Servidor MongoDB para obtener más información.
var builder = new MongoUrlBuilder { ReadPreference = MongoDB.Driver.ReadPreference.PrimaryPreferred, };
Opciones de autenticación
Credencial
Configuración de cómo el controlador se autentica en el servidor. Esto incluye las credenciales de autenticación, el mecanismo, el origen y otras opciones. El valor predeterminado es null.
Si no especifica un mecanismo de autenticación, el controlador utiliza SCRAM-SHA-1 o SCRAM-SHA-256, según la versión del servidor. Consulte
Mecanismos de autenticación para los mecanismos de autenticación disponibles.
var settings = new MongoClientSettings { Credential = MongoCredential.CreatePlainCredential( databaseName: "admin", username: "user", password: "password" ) };
Mecanismo de autenticación
El mecanismo que utiliza el controlador para autenticarse en MongoDB Server. Si no se especifica un mecanismo de autenticación, el controlador utiliza SCRAM-SHA-1 SCRAM-SHA-256o, según la versión del servidor. Consulte los mecanismos de autenticación disponibles.
var builder = new MongoUrlBuilder { AuthenticationMechanism = "GSSAPI", AuthenticationMechanismProperties = new Dictionary<string, string> { { "SERVICE_NAME", "other" }, { "CANONICALIZE_HOST_NAME", "true" } }, AuthenticationSource = "db" };
Propiedades del mecanismo de autenticación
Configuración del mecanismo de autenticación especificado en la propiedad AuthenticationMechanism.
var builder = new MongoUrlBuilder { AuthenticationMechanism = "GSSAPI", AuthenticationMechanismProperties = new Dictionary<string, string> { { "SERVICE_NAME", "other" }, { "CANONICALIZE_HOST_NAME", "true" } }, AuthenticationSource = "db" };
Fuente de autenticación
La fuente contra la cual autenticar al cliente.
var builder = new MongoUrlBuilder { AuthenticationMechanism = "GSSAPI", AuthenticationMechanismProperties = new Dictionary<string, string> { { "SERVICE_NAME", "other" }, { "CANONICALIZE_HOST_NAME", "true" } }, AuthenticationSource = "db" };
Contraseña
La contraseña que se utilizará para la autenticación.
var builder = new MongoUrlBuilder { Username = "user", Password = "password" };
Nombre de usuario
El nombre de usuario que se utilizará para la autenticación.
var builder = new MongoUrlBuilder { Username = "user", Password = "password" };
Opciones de selección y descubrimiento de servidores
Intervalo de latidos del corazón
El intervalo entre las comprobaciones regulares de monitorización del servidor. Debe ser mayor o igual a 500 milisegundos. El valor predeterminado es 10000 milisegundos (10 segundos).
var settings = new MongoClientSettings { HeartbeatInterval = TimeSpan.FromSeconds(5) };
HeartbeatTimeout
El tiempo que un socket de monitorización puede estar inactivo antes de caducar. El valor predeterminado es el valor de la propiedad ConnectTimeout.
var settings = new MongoClientSettings { HeartbeatTimeout = TimeSpan.FromSeconds(5) };
Umbral local
La ventana de latencia para la elegibilidad del servidor. Si el tiempo de ida y vuelta de un servidor es mayor que el del servidor más rápido más este valor, el servidor no es elegible. El valor predeterminado es 15 milisegundos.
var settings = new MongoClientSettings { LocalThreshold = TimeSpan.FromSeconds(15) };
Tiempo de espera de selección del servidor
La ventana de latencia para la elegibilidad del servidor. Si el tiempo de ida y vuelta de un servidor es mayor que el del servidor más rápido más este valor, el servidor no es elegible. El valor predeterminado es 15 milisegundos.
var settings = new MongoClientSettings { ServerSelectionTimeout = TimeSpan.FromSeconds(30) };
Intervalo de latidos del corazón
El intervalo entre las comprobaciones regulares de monitorización del servidor. Debe ser mayor o igual a 500 milisegundos. El valor predeterminado es 10000 milisegundos (10 segundos).
var builder = new MongoUrlBuilder { HeartbeatInterval = TimeSpan.FromSeconds(5) };
HeartbeatTimeout
El tiempo que un socket de monitorización puede estar inactivo antes de caducar. El valor predeterminado es el valor de la propiedad ConnectTimeout.
var builder = new MongoUrlBuilder { HeartbeatTimeout = TimeSpan.FromSeconds(5) };
Umbral local
La ventana de latencia para la elegibilidad del servidor. Si el tiempo de ida y vuelta de un servidor es mayor que el del servidor más rápido más este valor, el servidor no es elegible. El valor predeterminado es 15 milisegundos.
var builder = new MongoUrlBuilder { LocalThreshold = TimeSpan.FromSeconds(15) };
Tiempo de espera de selección del servidor
La ventana de latencia para la elegibilidad del servidor. Si el tiempo de ida y vuelta de un servidor es mayor que el del servidor más rápido más este valor, el servidor no es elegible. El valor predeterminado es 15 milisegundos.
var builder = new MongoUrlBuilder { ServerSelectionTimeout = TimeSpan.FromSeconds(30) };
Opciones de codificación
Codificación de lectura
La codificación UTF-8 que se utiliza para la deserialización de cadenas. El valor predeterminado es la codificación estricta, donde el controlador genera una excepción cuando encuentra una secuencia de bytes UTF-8 no válida.
var settings = new MongoClientSettings { ReadEncoding = new UTF8Encoding( encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true) };
WriteEncoding
La codificación UTF-8 que se utiliza para la serialización de cadenas. El valor predeterminado es la codificación estricta, donde el controlador genera una excepción cuando encuentra una secuencia de bytes UTF-8 no válida.
var settings = new MongoClientSettings { WriteEncoding = new UTF8Encoding( encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true) };
Nota
Solo MongoClientSettings
Las propiedades ReadEncoding y WriteEncoding solo están disponibles en la clase MongoClientSettings.
Stable API
Servidor API
Permite habilitar el control de versiones de la API estable. El valor predeterminado es. Consulte null la API estable en el manual de MongoDB Server para obtener más información sobre el control de versiones de la API estable.
var settings = new MongoClientSettings { ServerApi = new ServerApi( ServerApiVersion.V1, strict: true, deprecationErrors: true), };
Nota
Solo MongoClientSettings
La propiedad ServerApi solo está disponible en la clase MongoClientSettings.
Opciones de reintentos
Reintentar lecturas
Permite realizar lecturas reintentables. El valor predeterminado es true.
var settings = new MongoClientSettings { RetryReads = false, };
Reintentar escritura
Permite escrituras reintentables. El valor predeterminado es true.
var settings = new MongoClientSettings { RetryWrites = false, };
Opciones misceláneas
Nombre de la aplicación
El nombre de la aplicación que el controlador pasa al servidor en los metadatos del cliente como parte del protocolo de enlace de la conexión. El servidor imprime este valor en los registros de MongoDB una vez establecida la conexión. El valor también se registra en los registros de consultas lentas y en las colecciones de perfiles. El valor predeterminado es null.
var settings = new MongoClientSettings { ApplicationName = "yourAppName", };
Opciones de cifrado automático
Configuración del cifrado automático del cliente. El valor predeterminado null es. Para obtener más información sobre el cifrado del cliente, consulte Cifrado en uso.
var settings = new MongoClientSettings { AutoEncryptionOptions = new AutoEncryptionOptions( keyVaultNamespace: new CollectionNamespace( databaseName: "keyvault", collectionName: "datakeys"), kmsProviders: new Dictionary<string, IReadOnlyDictionary<string, object>> () { { "local", new Dictionary<string, object> () { { "key", "<base64-encoded-key>" } } } } ), };
Configurador de clúster
Opciones de configuración de bajo nivel para sockets, TLS, clúster y otros. El valor por defecto es null.
var settings = new MongoClientSettings { ClusterConfigurator = builder => { builder .Subscribe<ClusterOpenedEvent>(e => { Console.WriteLine($"Cluster opened: Cluster ID = {e.ClusterId}"); }) .Subscribe<ClusterDescriptionChangedEvent>(e => { Console.WriteLine($"Cluster description changed: {e.NewDescription}"); }); } };
IPv6
Especifica si la dirección del host está en formato IPv6. El valor predeterminado es false.
var settings = new MongoClientSettings { IPv6 = true, };
Está congelado
Una opción de solo lectura que indica si la configuración se ha congelado. No se puede cambiar la configuración congelada. El valor predeterminado es false.
var settings = new MongoClientSettings(); if (!settings.IsFrozen) { settings.RetryReads = false; }
Tip
Configuración de congelación
Puedes congelar la configuración de un MongoClientSettings objeto llamando a su método Freeze(). Esto evita que se realicen más cambios en la configuración.
Alternativamente, puede llamar al método FrozenCopy() para crear un nuevo MongoClientSettings objeto con la configuración actual congelada.
Información de la biblioteca
El nombre y la versión de una biblioteca personalizada creada con el controlador .NET/C#. El controlador envía esta información al servidor.
var settings = new MongoClientSettings { LibraryInfo = new LibraryInfo("customLibraryName", "1.0.0") };
Balance de carga
Especifica si el controlador se conecta a un balanceador de carga. Esta propiedad solo se puede establecer en true si se cumplen todas las condiciones siguientes:
Solo especifica un nombre de host
No te estás conectando a un conjunto de réplicas
No estás utilizando la propiedad
SrvMaxHostsNo estás utilizando la propiedad
DirectConnection
El valor por defecto es false.
var settings = new MongoClientSettings { LoadBalanced = true, };
Configuración de registro
Configuración utilizada para el registro. El valor predeterminado null es.
var settings = new MongoClientSettings { LoggingSettings = new LoggingSettings( LoggerFactory.Create(l => l.SetMinimumLevel(LogLevel.Debug))) };
Esquema
Especifica si se debe usar el formato de cadena de conexión estándarMongoDB () o el formato de lista de semillas DNSMongoDBPlusSrv (). Los valores disponibles para esta propiedad se definen en la enumeración ConnectionStringScheme. El valor predeterminado ConnectionStringScheme.MongoDB es. Consulte Cadenas de conexión en el manual de MongoDB Server para obtener más información sobre los formatos de cadena de conexión.
Si la propiedad DirectConnection está establecida en true e intenta utilizar el formato de lista de semillas DNS, el controlador .NET/C# generará una excepción.
var settings = new MongoClientSettings { Scheme = ConnectionStringScheme.MongoDBPlusSrv, };
Servidor
El host y el número de puerto donde se ejecuta MongoDB. El valor predeterminado es localhost:27017.
var settings = new MongoClientSettings { Server = new MongoServerAddress("localhost", 27017) };
Modo de monitorización del servidor
Especifica el protocolo de monitorización del servidor que se utilizará. Los valores disponibles para esta propiedad se definen en la enumeración ServerMonitoringMode. El valor predeterminado Auto es.
Cuando esta opción está configurada en Auto, el modo de supervisión se determina por el entorno en el que se ejecuta el driver. El driver utiliza el modo de sondeo en entornos de función como servicio (FaaS), como AWS Lambda, y el modo de transmisión en otros entornos.
var settings = new MongoClientSettings { ServerMonitoringMode = MongoDB.Driver.Core.Servers.ServerMonitoringMode.Stream };
Servidores
Los miembros del clúster donde se ejecuta MongoDB. El valor predeterminado es localhost:27017.
var settings = new MongoClientSettings { Servers = new List<MongoServerAddress>() { new ("localhost", 27017), new ("localhost", 27018) } };
Hosts SrvMax
El mayor número de resultados SRV que se seleccionan aleatoriamente al rellenar la lista de semillas o, durante el sondeo de SRV, al añadir nuevos hosts a la topología. El valor predeterminado es 0.
Esta propiedad solo se puede usar si el esquema de la cadena de conexión está establecido en ConnectionStringScheme.MongoDBPlusSrv. No se puede usar al conectarse a un conjunto de réplicas.
var settings = new MongoClientSettings { SrvMaxHosts = 5 };
SrvServiceName
El nombre del servicio de los registros de recursos SRV que el controlador recupera para construir la lista de semillas. El controlador utiliza el nombre del servicio para crear el URI SRV, que coincide con el siguiente formato:
_{srvServiceName}._tcp.{hostname}.{domainname}
Esta propiedad anula el nombre de servicio predeterminado para la búsqueda de SRV en la detección y el sondeo. El valor predeterminado es "mongodb".
Esta propiedad solo se puede usar si el esquema de la cadena de conexión está establecido en ConnectionStringScheme.MongoDBPlusSrv. No se puede usar al conectarse a un conjunto de réplicas.
var settings = new MongoClientSettings { SrvServiceName = "yourServiceName" };
Opciones de traducción
Especifica opciones, como la versión del servidor MongoDB, para traducir consultas LINQ a la API de consultas. El valor predeterminado es null.
var settings = new MongoClientSettings { TranslationOptions = new ExpressionTranslationOptions() { CompatibilityLevel = ServerVersion.Server80, EnableClientSideProjections = true } };
Nombre de la aplicación
El nombre de la aplicación que el controlador pasa al servidor en los metadatos del cliente como parte del protocolo de enlace de la conexión. El servidor imprime este valor en los registros de MongoDB una vez establecida la conexión. El valor también se registra en los registros de consultas lentas y en las colecciones de perfiles. El valor predeterminado es null.
var builder = new MongoUrlBuilder { ApplicationName = "yourAppName", };
DatabaseName
El nombre de la base de datos a la que se conecta el cliente.
var builder = new MongoUrlBuilder { DatabaseName = "test_database" };
IPv6
Especifica si la dirección del host está en formato IPv6. El valor predeterminado es false.
var builder = new MongoUrlBuilder { IPv6 = true, };
Balance de carga
Especifica si el controlador se conecta a un balanceador de carga. Esta propiedad solo se puede establecer en true si se cumplen todas las condiciones siguientes:
Solo especifica un nombre de host
No te estás conectando a un conjunto de réplicas
No estás utilizando la propiedad
SrvMaxHostsNo estás utilizando la propiedad
DirectConnection
El valor por defecto es false.
var builder = new MongoUrlBuilder { LoadBalanced = true, };
Esquema
Especifica si se debe usar el formato de cadena de conexión estándarMongoDB () o el formato de lista de semillas DNSMongoDBPlusSrv (). Los valores disponibles para esta propiedad se definen en la enumeración ConnectionStringScheme. El valor predeterminado ConnectionStringScheme.MongoDB es. Consulte Cadenas de conexión en el manual de MongoDB Server para obtener más información sobre los formatos de cadena de conexión.
Si la propiedad DirectConnection está establecida en true e intenta utilizar el formato de lista de semillas DNS, el controlador .NET/C# generará una excepción.
var builder = new MongoUrlBuilder { Scheme = ConnectionStringScheme.MongoDBPlusSrv, };
Servidor
El host y el número de puerto donde se ejecuta MongoDB. El valor predeterminado es localhost:27017.
var builder = new MongoUrlBuilder { Server = new MongoServerAddress("localhost", 27017) };
Modo de monitorización del servidor
Especifica el protocolo de monitorización del servidor que se utilizará. Los valores disponibles para esta propiedad se definen en la enumeración ServerMonitoringMode. El valor predeterminado Auto es.
Cuando esta opción está configurada en Auto, el modo de supervisión se determina por el entorno en el que se ejecuta el driver. El driver utiliza el modo de sondeo en entornos de función como servicio (FaaS), como AWS Lambda, y el modo de transmisión en otros entornos.
var builder = new MongoUrlBuilder { ServerMonitoringMode = MongoDB.Driver.Core.Servers.ServerMonitoringMode.Stream };
Servidores
Los miembros del clúster donde se ejecuta MongoDB. El valor predeterminado es localhost:27017.
var builder = new MongoUrlBuilder { Servers = new List<MongoServerAddress>() { new ("localhost", 27017), new ("localhost", 27018) } };
Hosts SrvMax
El mayor número de resultados SRV que se seleccionan aleatoriamente al rellenar la lista de semillas o, durante el sondeo de SRV, al añadir nuevos hosts a la topología. El valor predeterminado es 0.
Esta propiedad solo se puede usar si el esquema de la cadena de conexión está establecido en ConnectionStringScheme.MongoDBPlusSrv. No se puede usar al conectarse a un conjunto de réplicas.
var builder = new MongoUrlBuilder { SrvMaxHosts = 5 };
SrvServiceName
El nombre del servicio de los registros de recursos SRV que el controlador recupera para construir la lista de semillas. El controlador utiliza el nombre del servicio para crear el URI SRV, que coincide con el siguiente formato:
_{srvServiceName}._tcp.{hostname}.{domainname}
Esta propiedad anula el nombre de servicio predeterminado para la búsqueda de SRV en la detección y el sondeo. El valor predeterminado es "mongodb".
Esta propiedad solo se puede usar si el esquema de la cadena de conexión está establecido en ConnectionStringScheme.MongoDBPlusSrv. No se puede usar al conectarse a un conjunto de réplicas.
var builder = new MongoUrlBuilder { SrvServiceName = "yourServiceName" };
Información Adicional
Para obtener más información sobre los tipos utilizados en esta página, consulte la siguiente documentación de la API: