无法从 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.ConnectionStrings
和 ConfigurationManager.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"
我的 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.ConnectionStrings
和 ConfigurationManager.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 配置到 IConfigurationBuilderconfigBuilder.AddXmlFile("app.config");
内容和上面差不多...
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings configSource="connectionStrings.config" />
<appSettings>
<add key="Test" value="TestValue" />
</appSettings>
</configuration>
然后您应该可以使用...
访问AppSettings/ConnectionStringsConfigurationManager.ConnectionStrings
ConfigurationManager.AppSettings.AllKeys
{string[1]}
[0]: "Test"
ConfigurationManager.AppSettings.Get("Test")
"TestValue"