在IIS中,使用MSDeploy时,应如何保留环境/站点特定的WEB.CONFIG设置?

时间:2013-01-14 01:04:51

标签: iis iis-7.5 web-config msdeploy

背景

我在一家软件公司的QA工作。

我们有大约六个不同的网络应用程序,每个网站应用程序可能需要在任何给定的网站上添加一些添加到 web.config 文件的自定义设置。

这些范围包括应用程序连接到的Oracle数据库/架构,以及要缓存的搜索结果的数量,以及在网页上对项目进行排序时使用的层次结构。

我们利用Microsoft的Deploy软件包,在客户端站点上安装/更新新版本。

当我们发布新版本时,其中一些自定义设置可能已添加到给定的Web应用程序的 web.config 文件中,或者从其中删除,但使用Deploy导入新版本旧版本的顶部将破坏可能已经进行的任何自定义。

替代

有一些方法可以手动处理,例如通过旧的和新的 web.config 文件的纯文本比较进行合并,但这些文件很麻烦,容易出现人为错误。

我正在阅读transformations并认为它们可能有用。

还有use external files (tip #8)的能力,这似乎是一种很好的方式。

改进?

我们的程序员是否应该为此 web.config 文件提供某种半自动合并功能? Deploy包是否以某种方式提供了这个?

我们是否应该使用外部配置文件作为最佳做法?

在每个站点自定义此 web.config 文件的概念是否存在根本性的缺陷,以至于整个事情需要重新考虑?

1 个答案:

答案 0 :(得分:2)

Microsoft提供Web.config转换作为事实上的方法。您可以在Visual Studio和Web项目中创建不同的部署配置。然后,当您使用该特定配置构建或构建服务器构建时,将转换web.config以包含您要查看的设置。

View more about web.config transforms here