Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ConfigurationManager未拾取连接字符串更改_C#_.net_Wcf_Configurationmanager - Fatal编程技术网

C# ConfigurationManager未拾取连接字符串更改

C# ConfigurationManager未拾取连接字符串更改,c#,.net,wcf,configurationmanager,C#,.net,Wcf,Configurationmanager,我遇到ConfigurationManager无法获取连接字符串的更改的问题 我相信有一个简单的解释,但是我在过去的两个小时里一直盯着它看,让自己看不清上下文 在WCF项目中,我更新了web.config中命名连接字符串的数据库名称: <connectionStrings> <add name="appDb" connectionString="Data Source=HOST;Database=DB_NEW;User=X;Password=X;"

我遇到
ConfigurationManager
无法获取连接字符串的更改的问题

我相信有一个简单的解释,但是我在过去的两个小时里一直盯着它看,让自己看不清上下文

在WCF项目中,我更新了
web.config
中命名连接字符串的数据库名称:

<connectionStrings>
  <add name="appDb"
       connectionString="Data Source=HOST;Database=DB_NEW;User=X;Password=X;" 
       providerName="System.Data.SqlClient" />
</connectionStrings>
(WCF项目使用Unity管理依赖项注入,并负责在NHibernate的
ISessionFactory
的引用项目中创建会话工厂的实例)

但是,在运行时,在我更改连接字符串之前,它仍然会先拾取连接字符串

我尝试过的事情:

  • 整个解决方案的完全清理/重建
  • iisreset
  • 检查IIS物理路径是否为正确的目录(我有同一项目的多个分支)
  • 已选中解决方案中其他任何位置未定义连接字符串
  • 重新启动Visual Studio(2015)
  • 未对web.config应用任何转换
连接字符串值必须被缓存在某个地方,但我不知道该位置

更新

这可能是NHibernate缓存连接字符串吗?抱歉,我对NHibernate知之甚少(我通常是EF)

更新

IIS似乎可以识别IIS管理器中的新配置,因此这可以确认它是从文件中正确读取的


如果删除此
providerName=“System.Data.SqlClient”
并使用System.Data.SqlClient将
添加到类标题并添加引用,则此操作是否有效。。在这一行。。您能否显示正在为以下
ConfigurationManager.ConnectionString[“appDb”].ConnectionString
@MethodMan分配的变量?我应该尝试使用
添加到哪个类头?您正在使用数据库连接的类。在配置转换中是否可以覆盖连接字符串?也许它没有得到你认为它得到的连接字符串。@MethodMan-我尝试了你的建议,但我得到了同样的行为。无论如何,谢谢你。
ConfigurationManager.ConnectionStrings["appDb"].ConnectionString
var config = new NHibernate.Cfg.Configuration()
            .SetProperty(Environment.ConnectionString,
                ConfigurationManager
                    .ConnectionStrings["AppDb"].ConnectionString)