2009-12-30 57 views
2

我最近决定将连接字符串移动到machine.config,因为这似乎是迄今为止管理多个环境最优雅的方法。但是,如果需要出现(或非开明的群众开始抱怨),我仍然希望能够在我的本地web.config中覆盖这些设置。用web.config覆盖machine.config

如何在我的web.config中覆盖machine.config中的设置而无需获取ConfigurationErrorsException,因为该值已被设置?

回答

5

如果您尝试使用本地web.config添加另一个连接字符串,该连接字符串的名称与您在machine.config中添加的名称相同,那么您需要先删除它。 connectionStrings元素像字典一样工作,您可以在添加替换字符串之前添加删除或清除标记。详情请看this

+0

好的,谢谢你对我有意义。基本上它们被合并为一个全局配置给应用程序,所以我试图做的事实际上是不可能的。 – 2009-12-30 20:35:27

+0

如果你试图做的事是不可能的,那么我一定误解了这个问题。如果内存提供服务,SQL Server Express会在machine.config中创建一个名为“Local Server”的连接字符串,这些连接字符串对每个应用程序都是可用的,因为如您所说,这些配置会在运行时合并。要覆盖SQL的连接字符串,可以在web.config中添加一个标记,然后在新的配置中添加。 – Rory 2009-12-30 20:45:30

+0

是的,我误解了。它有助于您阅读文档;)我现在明白了。谢谢,这是完美的。 – 2009-12-30 23:11:24