繁体   English   中英

从使用configSource文件的Web.Config中读取值

[英]Reading value from Web.Config that uses configSource files

为了与这里建议保持一致,我们将连接字符串分成了一个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与这两种解决方案都可以正常工作。 但是,当我尝试获取某些测试的连接字符串时,它无法检索。这是我们用来提取连接字符串的代码:

string ConnectionString =
       ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;

当我们引入ConfigSource时,直接从web.config中读取连接字符串是可行的。 我们需要什么使它起作用

您需要将配置文件的“ Copy to Output Directory属性设置为Copy always Copy if newerCopy if newer

在此处输入图片说明

如果不这样做,则不会将ConnectionStrings.config文件复制到输出调试/发布文件夹中,因此将找不到该文件。

还要注意,外部文件的名称应与段名称相同。 像它应该是connectionStrings.config,而不是connections.config

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM