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

时间:2018-06-07 21:12:30

标签: c# asp.net-core 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中的那个)。

这里发生了什么?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

不是说这是应该的方式,但是您可以执行以下操作...

在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"