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.

Cadenas de conexión en el servicio de trabajador .NET 6

Estoy intentando conectarme a la base de datos con una cadena de conexión que está escrita en appsetting.json. Intento pasarla en UseSqlServer(“…”) en AddDbContext pero simplemente no funciona. Cuando lo escribo en la clase Context, funciona.
Entonces, el programa se ejecuta sin errores pero no se conecta a la base de datos.

¿Alguien sabe qué está mal aquí?
A continuación se muestra el código Program.cs:

using IHost host = Host.CreateDefaultBuilder(args)
    .UseWindowsService(options =>
    {
        options.ServiceName = "Subscriber Service";
    })
    .ConfigureServices(services =>
    {
        services.AddHostedService<DeliveryService>()
            .AddSingleton<IQueueService, QueueService>()
            .AddSingleton<IMailTransport, MailTransport>()
            .AddSingleton<IHttpTransport, HttpTransport>()
            .AddDbContext<nbiot<em>core</em>svctestContext>(
            options => options.UseSqlServer("name=ConnectionStrings:DefaultConnection"));
    })
    .Build();

await host.RunAsync();
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El problema parece estar en el formato de la cadena de conexión. En lugar de pasar la cadena de conexión directamente a UseSqlServer, estás intentando hacer referencia a ella desde appsetting.json utilizando el atributo “name”. Asegúrate de que el nombre que estás usando coincida exactamente con la clave en appsetting.json. Además, asegúrate de que el archivo se esté cargando correctamente y que la clave esté presente en el archivo.

    Si la cadena de conexión en appsettings.json está definida correctamente, intenta usar la sobrecarga de UseSqlServer que toma una cadena en lugar del parámetro de nombre.

    Además, comprueba que la clase de DbContext y la cadena de conexió están en la misma entidad. Si están en entidades diferentes, necesitas agregar una referencia a la entidad con la cadena de conexión en la entidad de tu DbContext.

    También puedes revisar los registros o mensajes de excepción para obtener más información sobre lo que podría estar causando el problema.

Comments are closed.