ASP.NET 核心应用在尝试发布到 Azure 后不使用 appsettings.json 中的设置

ASP.NET Core app does not use setting from the appsettings.json, after trying to publish to Azure

我的应用程序在本地执行时不会从 appsettings.json 中读取 ConnectionString。 我在 VS2019 中为我的 ASP.NET Core 3.1 应用程序配置了“连接服务”。 SQL 数据库连接的数据库名称错误(可能是自动生成的)。然后我删除了这个配置并从我的配置文件中忽略它。 但是现在,当我尝试在本地执行此应用程序时 - 它仍在尝试使用该配置中的数据库。

Microsoft.Data.SqlClient.SqlException (0x80131904): Cannot open database "aspnet-53bc9b9d-9d6a-45d4-1122-2a2761773502" requested by the login. The login failed.

1.有没有缓存的地方或我需要删除它的地方 手动从?

2。还有为什么它不从我的 appsettings.json?

读取

appsettings.json:

**{
  "Serilog": {
    "Using": [
      "Serilog.Sinks.Console",
      "Serilog.Sinks.File",
      "Serilog.Sinks.Seq",
      "Serilog.Sinks.Loggly"
    ],
    "MinimumLevel": {
      "Default": "Debug",
      "Override": {
        "Microsoft": "Debug",
        "System": "Debug"
      }
    },
    "Enrich": [
      "FromLogContext",
      "WithMachineName",
      "WithProcessId",
      "WithThreadId"
    ],
    "WriteTo": [
      {
        "Name": "Console"
      },
      {
        "Name": "File",
        "Args": {
          "path": "C:\ODATA\Logs\log.json"
        },
        "formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog"
      }
    ],
    "Properties": {
      "Application": "ODataTestApp"
    }
  },
  "ConnectionStrings": {
    "Database": "Data Source=*MyDBConnectionString*"
  },
  "AllowedHosts": "*",
  "ApplicationInsights": {
    "ConnectionString": "InstrumentationKey=*my-key*/"
  }
}**

P.S。我将这些连接服务添加为发布到 Azure 步骤的一部分。我尝试将我的应用程序发布到 Azure,但失败了(出于不同的原因)。

应该是appsettings.json.

在本地调试应用程序时,它会从 appsettings.dev.json 文件中读取配置。


当我们将应用程序部署到 Azure 时。默认情况下,它将读取 appsettings.json 文件。

但是如果我们在 Azure Portal 中配置了连接字符串,它会覆盖连接字符串。

Azure 门户中的设置优先于项目文件中 appsettings.json 文件中的配置。

在 运行 本地,我认为你的意思是在 Visual Studio 的调试模式下。执行以下两件事应该可以解决问题:

  1. 搜索“aspnet-53bc9b9d-9d6a-45d4-1122-2a2761773502”的解决方案并更正任何设置(设置文件或其他)。

  2. 删除项目目录下的debug和obj文件夹。清理并重建解决方案。

另一种可能性是您的计算机上为连接字符串设置了一个环境变量,但如果您不知情,这似乎不太可能存在。