如何在web.config中处理多个开发人员环境

时间:2015-05-06 21:04:39

标签: asp.net .net-4.5 asp.net-web-api2

所以我们假设我们有三个环境开发者,qa和prod。除此之外,所有开发人员都有自己的环境。如何管理每个环境的连接字符串或应用程序设置?

我相信dev,qa和prod我可以使用web.config转换(在线有很多关于如何做的资源)。但我对如何以可管理的方式设置开发人员设置感到困惑。我们一直在做的一种方式是

--web.config--
<add name="oracle_user1" connectionString="Data Source=DevDB;..." providerName="Oracle.DataAccess.Client"/>
<add name="oracle_user2" connectionString="Data Source=QaDB;..." providerName="Oracle.DataAccess.Client"/>
<add name="oracle_dev" connectionString="Data Source=DevDB;..." providerName="Oracle.DataAccess.Client"/>
<add name="oracle_qa" connectionString="Data Source=QaDB;..." providerName="Oracle.DataAccess.Client"/>
<add name="oracle_prod" connectionString="Data Source=ProdDB;..." providerName="Oracle.DataAccess.Client"/>
--code--
string conString = ConfigurationManager.AppSettings["oracle_" + Environment.GetEnvironmentVariable("AppEnv")]

这是标准的做法吗?

1 个答案:

答案 0 :(得分:2)

我们处理此问题的方法是对连接字符串使用单独的配置,该连接字符串将从存储库中排除。

在Web.Config中,连接字符串部分如下所示:

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

config文件夹有两个文件:

  • ConnectionStrings.Config
  • ConnectionStrings.Config.Template

模板文件由以下内容组成:

<connectionStrings>
    <add name="ConnectionString" connectionString="[...]" providerName="System.Data.SqlClient" />
</connectionStrings>

每个开发人员将此副本复制到名为ConnectionStrings.config的新文件,并编辑连接字符串以反映其计算机。

您可以使用相同的方法来外部化其他配置设置。