首页 > 解决方案 > Azure 备份,应用设置中的连接字符串会导致现有应用出现问题吗?

问题描述

我们已将应用服务升级到 S1,并希望设置自动备份。这是一个带有 SQL 数据库的 .net 核心应用程序。对于数据库部分,我得到以下信息:

在应用程序中找不到支持的 SQL 数据库或 MySQL 类型的连接字符串。

我采用了这个由以前的开发人员构建的项目,现在刚刚开始涉足。我知道我可以在应用程序设置中添加连接字符串,但我担心它会破坏应用程序。

例如,现在连接字符串是在代码本身中设置的,在appsettings.json

{
"Data": {
        "ConnectionStrings": {
            "ConnectionString":"Server=****;Initial Catalog=*****;Persist Security Info=False;User ID=*****;Password=*****;MultipleActiveResultSets=True;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
            //"ConnectionString":"Server=****;Initial Catalog=*****;Persist Security Info=False;User ID=*****;Password=*****;MultipleActiveResultSets=True;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

        }
},
"Logging": {
    "IncludeScopes": false,
    "LogLevel": {
        "Default": "Debug",
        "System": "Information",
        "Microsoft": "Information"
    }
}

其他开发人员设置它的方式是登台连接字符串在发布到生产时被注释掉,并在appsettings.json发布到登台时交换。上面的示例中还有另一个仅用于localhost开发。

此连接字符串用于Startup.cs

public void ConfigureServices(IServiceCollection services)
    {
        ...

        services.AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlServer(Configuration["Data:ConnectionStrings:ConnectionString"]));


    }

现在这可能是一个愚蠢的问题,但是如果在 Azure 设置中的应用程序中,如果我在那里添加一个连接字符串来利用自动备份,我会破坏任何东西吗?我指的是选择应用程序,单击配置应用程序设置,然后添加连接字符串。

我现在也没有使用插槽。所以我现在的目标是(当我更多地了解我没有开发的应用程序并学习如何使用 Azure 时)是:

  1. 为应用程序和 SQL 数据库设置自动备份
  2. 在运行时不会影响应用程序本身。

尽管看起来很愚蠢,但我对这个环境很陌生,只是有点偏执。我的直觉告诉我,代码将执行并保持不变,但在部署时,我不确定 Azure 是否在幕后做了什么会导致这件事在我面前爆发。

标签: azureasp.net-core

解决方案


在应用程序中找不到支持的 SQL 数据库或 MySQL 类型的连接字符串。

若要连接到数据库,其连接字符串必须存在于Azure 门户上应用程序 Connection strings的页面部分中。 所以,我建议你可以去门户网站检查配置连接字符串值是否正确或可用。以下站点中的正确连接字符串格式列表。Application Settings在此处输入图像描述

有关更多详细信息,您可以参考应用程序设置和连接的工作原理

最后要记住的最重要的事情是Azure 备份功能缓存了连接字符串。设置备份后对连接所做的任何更改都不会反映。

如果您更改了连接字符串,您将不得不点击reset备份刀片中的按钮并再次设置备份。这将确保拉入新的连接字符串。


推荐阅读