在应用部署上线前,要经过本地-->dev-->test-->pro类似于这样的流程,在这个过程中我们一般应该都会使用CI的方案吧,但是应用中的某些设置在不同的环境中都是独立的,比如DbConnection,所以同布的时候一般都会忽略Web.Config文件,但这样做感觉不是很好,比如我想修改AppSetting,不同的环境中还得手动修改一下,请问,在这方面有没有好的解决方案呢?
在我看到的一些paas服务商那里,如OpenShift、AppHarbor,他们在应用管理面板中,有一个类似于这样的设置(Configuration variables),其实是系统环境变量的概念,即我在如:ConnectionString写Key="DefaultConnection" Value="SQLSERVER_CONNECTION_STRING_APP1",就可以了,这样能做到开发跟运维的解耦,即权限的隔离,而且也不用忽略*.config文件了
但问题是我不知道这个是怎么做到的。。。。
专门做一个页面用来配置Web.Config呗
你其实可以用VS.NET的web.config转换功能完成,web.config作为通用配置,在web.release.config 定义发布时使用的配置值,同理web.debug.config侧放置测试用的配置值,更改生成选项(Debug/Release)让VS.NET对web.config进行转换得到当前运行所需要的配置文件。具体你可以参考这篇文章:http://blogs.msdn.com/b/webdev/archive/2010/10/26/asp-net-web-projects-web-debug-config-amp-web-release-config.aspx