以下是我从Azure门户网站复制的连接字符串:
Server=tcp:xxxxxxxxxxx.database.windows.net,9999;Initial Catalog=DbNameDB;Persist Security Info=False;User ID={my_username};Password={my_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
这是我的appsettings.json文件:
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"ConnectionStrings": {
"DefaultConnectionString": "Server=(localdb)\\MSSQLLocalDB;Database=HeroesDB;Integrated Security=True;MultipleActiveResultSets=True"
}
}
既然我希望我的应用程序在生产服务器上运行,我该如何设置它?
我应该......
我倾向于解决方案没有1.,但我想确定。
答案 0 :(得分:0)
通常,appsettings.json是主要设置文件,即生产文件(如果需要)。在其他子文件中找不到的所有设置(例如appsettings.development.json)都来自此appsettings.json。
所以它应该是相反的:你的appsettings.json应该包含你的生产连接字符串,而appsettings.development.json是你本地开发DB的连接字符串。
现在如何选择正确的设置文件。关键是ASPNETCORE_ENVIRONMENT设置。如果未设置,则自动选择appsettings.json。如果已设置,则应用会查找appsettings.{environment}.json
文件。
如果您的应用在Azure门户中运行,则可以在已部署的Web应用的设置中设置环境。本地(我假设您使用Visual Studio)有一个launchSettings.json文件,位于解决方案资源管理器中项目的“属性”文件夹下。在那里,您可以使用正确的环境创建本地启动配置,例如:
"my-local": {
"commandName": "Project",
"launchBrowser": false,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "https://localhost:5003/"
}
这将在VS中“播放”按钮的下拉列表中创建“我的本地”启动选项。如果您选择“my-local”,它将从“开发”环境中选择此设置,然后从中获取appsettings.Development.json并从那里获取连接字符串。
我希望我的问题是正确的。再次总结一下,本地使用为appsettings.development.json和本地DB配置的环境。部署到Azure,它将获取正常的appsettings.json文件并针对生产数据库运行。
答案 1 :(得分:0)
在您的Azure门户中,转到您的应用,然后在“设置”下找到“配置”。
在配置中,您可以添加连接字符串。如果名称相同,它将覆盖您的json文件的连接字符串。