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

Asp.net 如何在web.config中处理多个开发人员环境,asp.net,.net-4.5,asp.net-web-api2,Asp.net,.net 4.5,Asp.net Web Api2,假设我们有三个环境dev、qa和prod。除此之外,所有开发人员都有自己的环境。如何管理每个环境的连接字符串或应用程序设置 我相信对于dev、qa和prod,我可以使用web.config转换(关于如何进行转换的大量在线资源)。但是,如何以可管理的方式设置开发人员设置,让我感到困惑。我们一直在做的一件事就是 --web.config-- <add name="oracle_user1" connectionString="Data Source=DevDB;..." providerNam

假设我们有三个环境dev、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")]
-web.config--
--代码--
string conString=ConfigurationManager.AppSettings[“oracle_389;”+Environment.GetEnvironmentVariable(“AppEnv”)]

这是执行此操作的标准方法吗?

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

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

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

config文件夹有两个文件:

  • connectionString.Config
  • ConnectionString.Config.Template
模板文件由以下部分组成:

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

每个开发人员将其复制到名为
ConnectionStrings.config
的新文件中,并编辑连接字符串以反映他们的机器


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

hmm,我喜欢它,但当我们想要部署时,我们必须手动记住设置所有配置?@surya否,您可以使用SlowCheetah进行web.config转换。这将允许您根据构建配置自动转换配置文件。因此,如果您创建一个发布版本,它将用生产服务器(以及web.config-app设置、邮件服务器等中的任何其他内容)的连接字符串替换您的连接字符串节点