如何设置与数据库的连接 - Azure上托管的ASP.NET Core

时间:2017-12-12 08:23:01

标签: azure asp.net-core

以下是我从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. ...在我的项目中创建一个 appsettings.production.json 文件(在我的appsettings.json文件旁边),并将它的DefaultConnectionString设置为Azure服务器的连接字符串?如果我这样做,Azure会自动知道要使用哪两个文件?
  2. ...将我原来的 appsettings.json 文件的连接字符串更改为Azure服务器连接字符串?
  3. ...寻找完全不同的解决方案?如果是的话,你会建议什么?

  4. 我倾向于解决方案没有1.,但我想确定。

2 个答案:

答案 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文件的连接字符串。