现在我们的测试和生产数据库位于同一台服务器上,但名称不同.部署意味着编辑Web.config以更改正确数据库的所有连接字符串.我经常忘记的一步......
我们最终创建了一个用于测试的新数据库服务器,我正在移动数据库......但现在服务器将会有所不同,我们仍然需要处理连接字符串问题.
我正在考虑通过主机文件来管理它,但是当我需要对生产数据进行测试时想到在我的台式机上切换它似乎很麻烦.
所以我只是想知道是否有更好的方法.使用"生产"Web配置进行部署的东西将是理想的......
使用Web部署项目并使用一些后期构建任务更新wdproj文件(它只是一个MSBuild文件)以输出正确的.config文件.我保留了web.config和web.release.config然后在wdproj文件中使用它:
更多信息
一个更简单的解决方案是使用appSettings和connectionStrings的configSource属性,然后永远不会覆盖生产服务器上的该文件.
我通常有三个独立的网络配置:一个用于我的开发机器,一个用于QA,一个用于生产.开发一个连接到我的本地SQL数据库(从外部防火墙),它是默认的web.config.其他名为web-prod.config和web-qa.config.发布后,我删除了我不需要的两个,并将正确的一个重命名为web.config.如果我忘了,应用程序会在第一次尝试访问数据库时中断,因为默认配置引用了无法访问的应用程序.
由于IIS拒绝提供名为.config的文件,因此我确保它们都以.config结尾,而不是说web.config-prod或web.config-qa.