es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Fallo al conectar a Atlas desde C#.

Tenemos una base de datos de prueba Atlas funcionando correctamente.

Podemos conectarnos a ella utilizando Mongo Shell y listar las colecciones de la base de datos exitosamente.

Sin embargo, cuando intentamos conectarnos utilizando C# (ejecutando el siguiente código):

var settings = MongoClientSettings.FromConnectionString("mongodb+srv://menadmin:<nuestra contraseña="" aquí="">@cluster0.k2loi.mongodb.net/MAP?retryWrites=true&w=majority");
var client = new MongoClient(settings);
var dbList = client.ListDatabases().ToList();

Donde es reemplazada por nuestra contraseña. Al ejecutar este código, obtenemos el siguiente error:

System.TimeoutException: ‘Timeout ocurrió después de 30000ms al seleccionar un servidor usando CompositeServerSelector{ Selectors = MongoDB.Driver.MongoClient+AreSessionsSupportedServerSelector, LatencyLimitingServerSelector { AllowedLatencyRange = 00:00:00.0150000 } , OperationsCountServerSelector }. Vista del cliente del estado del clúster es { ClusterId : “1”, ConnectionMode : “ReplicaSet”, Type : “ReplicaSet”, State : “Disconnected”, Servers : [{ ServerId: { ClusterId : 1, EndPoint : “No especificado/cluster0-shard-00-00.k2loi.mongodb.net:27017” } , EndPoint: “No especificado/cluster0-shard-00-00.k2loi.mongodb.net:27017”, ReasonChanged: “Heartbeat”, State: “Disconnected”, ServerVersion: , TopologyVersion: , Type: “Unknown”, HeartbeatException: “MongoDB.Driver.MongoConnectionException: Ocurrió una excepción al abrir una conexión con el servidor. —> System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (10060): Un intento de conexión falló porque el partido conectado no respondió correctamente después de un período de tiempo, o la conexión establecida falló porque el host conectado no respondió. 52.31.23.157:27017

Estamos utilizando la versión 2.14.1 de los drivers de Mongo para C#. También falla utilizando la versión 2.10.4 con el mismo error. También hemos probado el código desde una aplicación de framework .NET y una aplicación de núcleo .NET con el mismo resultado.

¿Tienes alguna idea de cuál podría ser el problema?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que el código en C# no puede conectarse al servidor de MongoDB, ya que se produjo un tiempo de espera después de 30 segundos mientras se selecciona un servidor. Esto podría deberse a varias razones, como problemas de red o configuraciones incorrectas.

    Algunas posibles soluciones para probar incluyen:

    • Verificar que la cadena de conexión es correcta e incluye el nombre de usuario, contraseña y nombre de la base de datos correctos. Verificar la presencia de errores tipográficos o caracteres faltantes.
    • Verificar nuevamente que la dirección IP y el puerto del servidor de MongoDB sean correctos y accesibles desde la red donde se está ejecutando el código en C#.
    • Asegurarse de que el servidor de MongoDB esté en ejecución y aceptando conexiones. Puede utilizar la consola mongo o un cliente de MongoDB para probar la conexión manualmente.
    • Verificar la configuración del firewall para asegurarse de que el código en C# pueda comunicarse con el servidor de MongoDB. Algunos firewalls pueden bloquear las conexiones salientes o restringir puertos específicos.
    • Intentar aumentar el valor del tiempo de espera de la conexión en el código en C# a un número mayor, como 60000ms, para ver si eso resuelve el problema.

    Si ninguna de estas soluciones funciona, es posible que necesite realizar más pruebas y diagnósticos para determinar la causa raíz del problema.

Comments are closed.