MSDeploy覆盖IIS设置
我终于有了TeamCity安装程序来构建源代码管理更改,并且使用'包'目标和生成的'deploy.cmd将独立的MSBuild任务设置打包并部署到登台服务器上的IIS '脚本。在构建事件,文件包含/排除等方面,一切都是完美的......MSDeploy覆盖IIS设置
但是,我遇到了如何部署软件包的问题。无论何时将包部署到服务器,IIS设置都会被吹走。例如,我可以设置缓存过期标题或打开静态压缩,在部署我的软件包后,它们将恢复为服务器的默认值。
有谁知道我该如何解决这个问题?是否有我可以忽略的参数或规则?
我认为你遇到的情况与你想象的不同。
在IIS 7中,当您为属性设置属性值时,如描述存储在应用程序的web.config中的配置,而不是applicationHost.config。比如我刚刚创建了一个网站,并修改这些设置,然后我的web.config文件中的以下片段被删除。
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true" />
<urlCompression doStaticCompression="false" />
<caching>
<profiles>
<add extension=".aspx" policy="CacheUntilChange" kernelCachePolicy="DontCache" />
</profiles>
</caching>
</system.webServer>
所以,当你执行同步发生的事情在你的包在web.config中覆盖其中具有修改属性的web.config。您需要做什么才能在IIS 7中配置您的应用程序,然后将它放入web.config文件中。或者,如果你想要的话,你可以把它放在web.debug.config或web.release.config中,如果你想在发布时只在你的web.config中有。
是的,MSDeploy将从您的项目中获取web.config,并在其上运行提供的转换(您也可以在MSDeploy配置中添加特定的转换,以及您提到的* build *),并将其复制到服务器。 – 2010-11-15 20:27:26
谢谢,我甚至没有意识到更改IIS设置修改了web.config,我只是认为它正在进行配置数据库更改。这对IIS7来说是新的吗? – felickz 2011-08-08 13:53:55
覆盖哪些类型的设置? – 2010-11-03 08:58:04
它正在覆盖诸如Dynamic/Static Compression和Cache Expiration Headers之类的东西。 – Dave 2010-11-08 20:33:08