从使用 configSource 文件的 Web.Config 中读取值
Reading value from Web.Config that uses configSource files
为了与 recommendation here 保持一致,我们将连接字符串分离到一个 xml 文件中。我们的 web.config:
//old - works
<connectionStrings>
<add name="DefaultConnection"
connectionString="Data Source=.\SQLExpress;Initial Catalog=xxx;Integrated Security=True;"
providerName="System.Data.SqlClient" />
<connectionStrings>
//new - fails
<connectionStrings configSource="connections.config" />
connections.config的内容:
<?xml version="1.0" encoding="utf-8"?>
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=.\SQLExpress;Initial Catalog=xxx;Integrated Security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
这两个文件都位于项目根文件夹中。 EntityFramework 适用于两种解决方案。但是,当我尝试获取某些测试的连接字符串时,它失败了 retrieve.This 是我们用来提取连接字符串的代码:
string ConnectionString =
ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
直接从 web.config 读取连接字符串是可行的,当我们引入 ConfigSource 时它失败了。我们需要什么才能让它发挥作用
您需要将配置文件的 Copy to Output Directory
属性 设置为 Copy always
或 Copy if newer
。
如果您不这样做,您的 ConnectionStrings.config
文件将不会复制到输出 debug/release 文件夹,因此将找不到。
另请注意,外部文件的名称应与节名称相同。好像应该是 connectionStrings.config,而不是 connections.config
为了与 recommendation here 保持一致,我们将连接字符串分离到一个 xml 文件中。我们的 web.config:
//old - works
<connectionStrings>
<add name="DefaultConnection"
connectionString="Data Source=.\SQLExpress;Initial Catalog=xxx;Integrated Security=True;"
providerName="System.Data.SqlClient" />
<connectionStrings>
//new - fails
<connectionStrings configSource="connections.config" />
connections.config的内容:
<?xml version="1.0" encoding="utf-8"?>
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=.\SQLExpress;Initial Catalog=xxx;Integrated Security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
这两个文件都位于项目根文件夹中。 EntityFramework 适用于两种解决方案。但是,当我尝试获取某些测试的连接字符串时,它失败了 retrieve.This 是我们用来提取连接字符串的代码:
string ConnectionString =
ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
直接从 web.config 读取连接字符串是可行的,当我们引入 ConfigSource 时它失败了。我们需要什么才能让它发挥作用
您需要将配置文件的 Copy to Output Directory
属性 设置为 Copy always
或 Copy if newer
。
如果您不这样做,您的 ConnectionStrings.config
文件将不会复制到输出 debug/release 文件夹,因此将找不到。
另请注意,外部文件的名称应与节名称相同。好像应该是 connectionStrings.config,而不是 connections.config