none
ConfigurationManager.ConnectionStrings, retorna valor null RRS feed

  • Pregunta

  • Hola, 

    Tengo este error al tratar de obtener mi Connection String desde al AppSetings.Json (Asp.Net Core 30),

    Este es mi AppSettings.json

    {
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft": "Warning",
          "Microsoft.Hosting.Lifetime": "Information"
        }
      },
      "ConnectionStrings": {
        "DBString": "MyConnectionString"
      },
      "AllowedHosts": "*"
    }


    Este es el bloque de codigo que agrgue en el Startup.cs dentro del metodo ConfigureServices()

    services.AddDbContext<MyContext>(options =>
    options.UseMySql(Configuration.GetConnectionString("DBString")));



    Y dentro del Archivo de Context   (MyContext):

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                if (!optionsBuilder.IsConfigured)
                {
                    optionsBuilder.UseMySQL(ConfigurationManager.ConnectionStrings["DBString"].ToString());
                }
            }


    Y me retorna este error:


    System.NullReferenceException: 'Object reference not set to an instance of an object.'

    System.Configuration.ConnectionStringSettingsCollection.this[string].get devolvió null.



    De antemano Muchas Gracias.

    lunes, 11 de enero de 2021 21:41

Respuestas

  • Hola, estás usando objetos diferentes. En el primer caso, en tu Startup, estás usando un IConfiguration. En el otro ConfigurationManager que seguramente no lo tienes establecido. 

    Podrías hacer algo parecido a esto

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            var configuration = new ConfigurationBuilder()
                .SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
                .AddJsonFile("AppSettings.json")
                .Build(); 
    
            optionsBuilder.UseMySQL(configuration.GetConnectionString("BString"));
        }





    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    lunes, 11 de enero de 2021 21:57
    Moderador

Todas las respuestas

  • Hola, estás usando objetos diferentes. En el primer caso, en tu Startup, estás usando un IConfiguration. En el otro ConfigurationManager que seguramente no lo tienes establecido. 

    Podrías hacer algo parecido a esto

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            var configuration = new ConfigurationBuilder()
                .SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
                .AddJsonFile("AppSettings.json")
                .Build(); 
    
            optionsBuilder.UseMySQL(configuration.GetConnectionString("BString"));
        }





    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    lunes, 11 de enero de 2021 21:57
    Moderador
  • Hola Josué,

    Gracias por confirmar que se ha encontrado una solución a la consulta realizada.

    Gracias por usar los foros de MSDN.

    Eric Ruiz

    ____________________________

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.

    martes, 12 de enero de 2021 0:01
    Moderador