我有一个ASP.NET Web应用程序。该应用程序连接三个不同的数据所以我在web.config中定义了三个连接字符串,它们具有不同的数据库名称和凭证。从应用程序代码我指向相关的连接字符串并触发存储过程。有时程序正在访问错误的数据库。我的猜测是,当.NET缓存web.config时,框架会以某种方式从缓存中返回错误的连接字符串,并且应用程序将访问错误的数据库。我检查了应用程序代码,发现在所有情况下都指向正确的连接数据库。这是否由于web.config chancing而发生?我无法确定问题的根本原因。请帮忙。
答案 0 :(得分:0)
如果使用EF连接数据库,则必须关闭上下文的范围,然后使用所需的连接字符串初始化新的上下文,然后使用该上下文执行SP。
我不认为这是缓存的问题!
答案 1 :(得分:0)
如果只有一个DAL连接到不同的数据库,那么应用程序错误的可能性很大。
可能的解决方案,因为我们不知道你的数据访问代码是怎么样的,就是创建3个不同的DAL,并且在每个DAL中实现逻辑只能使用指定的连接字符串。
例如,创建3个不同的类,这些类继承自DbContext,在构造函数中具有不同的连接字符串。