我正在与一群人开发一个Web应用程序,我们都有不同的连接字符串到我们的数据库。
连接字符串存储在我们的web.config中,这是受源代码控制的,有时人们用他们的连接字符串检查他们的web.config,这会扰乱我的环境。
我想使用一个环境变量,如果存在,将覆盖我的web.config中的连接字符串。我怎么能这样做?
答案 0 :(得分:2)
正如其他人在您的评论中指出的那样,没有简单的方法可以阻止人们更改源代码控制下的任何文件。但是,您可以做的是将 web.config 文件更改为:
<connectionStrings configSource="Configs\ConnectionStrings.config" > </connectionStrings>
然后有一个名为配置的文件夹,其中有一个名为 ConnectionStrings.config 的文件,内容如下:
<connectionStrings>
<add name="YourVersionHere" ... />
</connectionStrings>
通过这种方式,您可以检查 web.config 文件,而无需更改连接字符串(现在它保存在单独的文件中)。当然,这不会让你离开监狱,因为他们可以覆盖 ConnectionStrings.config 文件,但它确实允许你打破你的配置,所以你总是可以与所有的最新设置但永远不要在 ConnectionStrings.config 文件上进行GET。
这同样适用于AppConfig等。基本上允许您在较小的块中管理配置,而不是在一个地方管理。
您可以在此处获取更多信息:http://msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.configsource.aspx
答案 1 :(得分:0)
是否可以将连接字符串从应用程序级web.config下移到系统级machine.config文件?