无法从 web.config 读取连接字符串

Can't read connection string from web.config

我的 web.config 位于我项目的根目录中:

<configuration>
  <connectionStrings>
    <clear />  
    <add name="Default" providerName="System.Data.SqlClient" connectionString="Server=tcp:whoops;Encrypt=True;TrustServerCertificate=False;Connection Timeout=3000;" />
  </connectionStrings>
  <appSettings>
    <add key="ConnectionString" value="test"/>
  </appSettings>
  ....

我读自 Startup.cs(这是一个 asp.net 核心网络应用程序):

 string connection = ConfigurationManager.ConnectionStrings["Default"].ConnectionString;

然而,当我打破这个时,ConfigurationManager.ConnectionStringsConfigurationManager.AppSettings 是空的(好吧,第一个有一些默认的连接字符串,而不是 web.config 中的那个)。

这是怎么回事?

您必须将配置迁移到新文件 appsettings.json https://docs.microsoft.com/en-us/aspnet/core/migration/configuration?view=aspnetcore-2.1

并不是说您应该这样做,但您可以执行以下操作...

在 ASP.Net Core 2.2 中,您应该能够使用

添加 XML 配置到 IConfigurationBuilder
configBuilder.AddXmlFile("app.config");

内容和上面差不多...

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings configSource="connectionStrings.config" />
  <appSettings>
    <add key="Test" value="TestValue" />
  </appSettings>
</configuration>

然后您应该可以使用...

访问AppSettings/ConnectionStrings
ConfigurationManager.ConnectionStrings

ConfigurationManager.AppSettings.AllKeys
{string[1]}
    [0]: "Test"
ConfigurationManager.AppSettings.Get("Test")
"TestValue"