0

我正在与一群人一起开发一个 Web 应用程序,我们的数据库都有不同的连接字符串。

连接字符串存储在我们的源代码控制的 web.config 中,有时人们使用他们的连接字符串检查他们的 web.config,这会弄乱我的环境。

我想使用一个环境变量,如果存在将覆盖我的 web.config 中的连接字符串。我怎样才能做到这一点?

4

2 回答 2

2

正如其他人在您的评论中指出的那样,没有简单的方法可以阻止人们更改任何受源代码控制的文件。但是,您可以做的是将web.config文件更改为:

<connectionStrings configSource="Configs\ConnectionStrings.config" > </connectionStrings>

然后有一个名为Configs的文件夹,其中有一个名为ConnectionStrings.config的文件,其内容如下:

<connectionStrings>
  <add name="YourVersionHere" ... />
</connectionStrings>

这样您就可以在不更改连接字符串的情况下检查/输出web.config文件(它现在保存在单独的文件中)。当然,这不会让你出狱,因为他们可以覆盖ConnectionStrings.config文件,但它确实允许你打破你的配置,这样你就可以随时了解所有设置但永远不要执行 GET您的ConnectionStrings.config文件。

这同样适用于 AppConfig 等。基本上允许您以较小的块而不是在一个地方管理您的配置。

您可以在此处获取更多信息:http: //msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.configsource.aspx

于 2013-03-08T16:05:20.653 回答
0

您是否可以将连接字符串从应用程序级 web.config 移动到系统级 machine.config 文件?

于 2013-03-08T16:10:52.757 回答