Docs Menu
Docs Home
/ /

Especifica opciones de conexión

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.

Las siguientes secciones describen las formas en que puede especificar las opciones 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.

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:

  1. Crea una instancia de la clase MongoClientSettings

  2. Establecer propiedades en la instancia para configurar la conexión

  3. 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);

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);

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.

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,
};

El nombre del conjunto de réplicas al que se conectará. El valor predeterminado es null.

var settings = new MongoClientSettings
{
ReplicaSetName = "yourReplicaSet",
};

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,
};

El nombre del conjunto de réplicas al que se conectará. El valor predeterminado es null.

var builder = new MongoUrlBuilder
{
ReplicaSetName = "yourReplicaSet",
};

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,
};

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() { ... }
};

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,
};

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,
};

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
};

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,
};

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),
};

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),
};

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),
};

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),
};

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)
}
};

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)
}
};

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,
};

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),
};

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),
};

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,
};

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,
};

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),
};

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,
};

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),
};

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),
};

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,
};

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,
};

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),
};

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
);

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
};

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
};

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
};

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)
};

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,
};

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,
};

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,
};

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"
)
};

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"
};

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"
};

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"
};

La contraseña que se utilizará para la autenticación.

var builder = new MongoUrlBuilder
{
Username = "user",
Password = "password"
};

El nombre de usuario que se utilizará para la autenticación.

var builder = new MongoUrlBuilder
{
Username = "user",
Password = "password"
};

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)
};

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)
};

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)
};

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)
};

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)
};

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)
};

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)
};

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)
};

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)
};

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.

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.

Permite realizar lecturas reintentables. El valor predeterminado es true.

var settings = new MongoClientSettings
{
RetryReads = false,
};

Permite escrituras reintentables. El valor predeterminado es true.

var settings = new MongoClientSettings
{
RetryWrites = false,
};

Permite realizar lecturas reintentables. El valor predeterminado es true.

var builder = new MongoUrlBuilder
{
RetryReads = false,
};

Permite escrituras reintentables. El valor predeterminado es true.

var builder = new MongoUrlBuilder
{
RetryWrites = false,
};

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",
};

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>" } } }
}
),
};

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}");
});
}
};

Especifica si la dirección del host está en formato IPv6. El valor predeterminado es false.

var settings = new MongoClientSettings
{
IPv6 = true,
};

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.

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")
};

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 SrvMaxHosts

  • No estás utilizando la propiedad DirectConnection

El valor por defecto es false.

var settings = new MongoClientSettings
{
LoadBalanced = true,
};

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)))
};

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,
};

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)
};

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
};

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)
}
};

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
};

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"
};

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
}
};

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",
};

El nombre de la base de datos a la que se conecta el cliente.

var builder = new MongoUrlBuilder
{
DatabaseName = "test_database"
};

Especifica si la dirección del host está en formato IPv6. El valor predeterminado es false.

var builder = new MongoUrlBuilder
{
IPv6 = true,
};

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 SrvMaxHosts

  • No estás utilizando la propiedad DirectConnection

El valor por defecto es false.

var builder = new MongoUrlBuilder
{
LoadBalanced = true,
};

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,
};

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)
};

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
};

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)
}
};

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
};

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"
};

Para obtener más información sobre los tipos utilizados en esta página, consulte la siguiente documentación de la API:

Volver

Elija un destino de conexión