所以我们假设我们有三个环境开发者,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")]
这是标准的做法吗?
答案 0 :(得分:2)
我们处理此问题的方法是对连接字符串使用单独的配置,该连接字符串将从存储库中排除。
在Web.Config中,连接字符串部分如下所示:
<connectionStrings configSource="Config\ConnectionStrings.config" />
config文件夹有两个文件:
模板文件由以下内容组成:
<connectionStrings>
<add name="ConnectionString" connectionString="[...]" providerName="System.Data.SqlClient" />
</connectionStrings>
每个开发人员将此副本复制到名为ConnectionStrings.config
的新文件,并编辑连接字符串以反映其计算机。
您可以使用相同的方法来外部化其他配置设置。