ConfigurationManager

时间:2017-10-19 17:31:49

标签: c# .net wcf configurationmanager

我遇到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项目中抽象出来。在该项目中,它使用web.config文件中的连接字符串值,使用以下表达式访问:

ConfigurationManager.ConnectionStrings["appDb"].ConnectionString

(WCF项目使用Unity管理依赖注入,并负责在NHibernate ISessionFactory的引用项目中创建会话工厂的实例。)

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

我尝试的事情:

  • 完整清理/重建整个解决方案
  • IISRESET
  • 已检查的IIS物理路径是正确的目录(我有同一个项目的多个分支)
  • 检查连接字符串是否未在解决方案中的任何其他位置定义
  • 重新启动Visual Studio(2015)
  • 未将变换应用于web.config

连接字符串值必须在某处缓存,但我不知道。

更新

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

var config = new NHibernate.Cfg.Configuration()
            .SetProperty(Environment.ConnectionString,
                ConfigurationManager
                    .ConnectionStrings["AppDb"].ConnectionString)

更新

IIS似乎认识到IIS管理器中的新配置,因此确认它正在从文件中正确读取。

enter image description here

0 个答案:

没有答案