.NET Core 6 中的连接字符串
ConnectionString in .NET Core 6
我正在玩 .NET Core 6 Web API。但我现在似乎无法弄清楚连接字符串是如何工作的。
此处注释掉的第一部分工作正常。但是我需要能够将程序扔到不同的系统上并使用 appsettings.json
.
更改连接字符串
第二部分是我尝试过的,但没有用。
是我从哪里得到的。
//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")));
我的appsettings.json
:
"ConnectionStrings": {
"ToDoItemsDatabase": "Server=JOHANDRE\SQL2017; Database=ToDoItems; User=xxx; Password=xxx;"
},
我想补充一点,它不会抛出错误。它似乎没有找到连接。
问题是您如何从该服务启动 Web API。您正在使用 Process
而未将 ProcessStartInfo.WorkingDirectory
设置为包含 exe 和配置的文件夹,并且启动的进程与父进程共享工作目录,因此将 appsettings.json
移动到父项目文件夹或设置WorkingDirectory
匹配包含exe的目录:
toDoTest.StartInfo.UseShellExecute = false;
toDoTest.StartInfo.WorkingDirectory = "C:\Develop\ToDoMVCtutorial\bin\Release\net6.0\publish\";
您也可以尝试 redirecting 您的 Web API 输出来捕获日志。
我正在玩 .NET Core 6 Web API。但我现在似乎无法弄清楚连接字符串是如何工作的。
此处注释掉的第一部分工作正常。但是我需要能够将程序扔到不同的系统上并使用 appsettings.json
.
第二部分是我尝试过的,但没有用。
//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")));
我的appsettings.json
:
"ConnectionStrings": {
"ToDoItemsDatabase": "Server=JOHANDRE\SQL2017; Database=ToDoItems; User=xxx; Password=xxx;"
},
我想补充一点,它不会抛出错误。它似乎没有找到连接。
问题是您如何从该服务启动 Web API。您正在使用 Process
而未将 ProcessStartInfo.WorkingDirectory
设置为包含 exe 和配置的文件夹,并且启动的进程与父进程共享工作目录,因此将 appsettings.json
移动到父项目文件夹或设置WorkingDirectory
匹配包含exe的目录:
toDoTest.StartInfo.UseShellExecute = false;
toDoTest.StartInfo.WorkingDirectory = "C:\Develop\ToDoMVCtutorial\bin\Release\net6.0\publish\";
您也可以尝试 redirecting 您的 Web API 输出来捕获日志。