我遇到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
的引用项目中创建会话工厂的实例。)
但是,在运行之前,它仍然在我更改之前拾取连接字符串。
我尝试的事情:
连接字符串值必须在某处缓存,但我不知道。
更新
这可能是NHibernate缓存连接字符串吗?道歉我对NHibernate知之甚少(我通常是EF)。
var config = new NHibernate.Cfg.Configuration()
.SetProperty(Environment.ConnectionString,
ConfigurationManager
.ConnectionStrings["AppDb"].ConnectionString)
更新
IIS似乎认识到IIS管理器中的新配置,因此确认它正在从文件中正确读取。