Johandre
Johandre

Reputation: 55

ConnectionString in .NET Core 6

I'm playing around in .NET Core 6 Web API's. But I can't seem to figure out how the connection string works now.

The first part here that is commented out works fine. But I need to be able to throw the program on different systems and change the connection string with appsettings.json.

The second part is what I attempted but that doesn't work.

Config connection string in .net core 6 is where I got it from.

//builder.Services.AddDbContext<TodoContext>(opt =>
//    opt.UseSqlServer(@"Data Source=JOHANDRE\\SQL2017; Database=ToDoItems; User=xxx; Password=xxx;"));

builder.Services.AddDbContext<TodoContext>(opt =>
    opt.UseSqlServer(builder.Configuration.GetConnectionString("ToDoItemsDatabase")));

My appsettings.json:

"ConnectionStrings": {
      "ToDoItemsDatabase": "Server=JOHANDRE\\SQL2017; Database=ToDoItems; User=xxx; Password=xxx;"
  },

I want to add that it does not throw errors. it just does not seem to find the connection.

Upvotes: 1

Views: 8736

Answers (1)

Guru Stron
Guru Stron

Reputation: 142038

Problem is how you start your Web API from the service. You are using Process without setting ProcessStartInfo.WorkingDirectory to the folder containing exe and configuration and the started process shares the working directory with parent one, so either move appsettings.json to the parent project folder or set the WorkingDirectory to match the directory containing the exe:

toDoTest.StartInfo.UseShellExecute = false;
toDoTest.StartInfo.WorkingDirectory = "C:\\Develop\\ToDoMVCtutorial\\bin\\Release\\net6.0\\publish\\";

Also you can try redirecting your Web API output to capture the logs.

Upvotes: 2

Related Questions