MSDeploy覆盖IIS设置

Dav*_*ave 1 deployment iis msdeploy visual-studio

我最终使用TeamCity设置来构建源代码控制更改,并使用单独的MSBuild任务设置,使用"package"目标和生成的"deploy.cmd"脚本打包并部署到登台服务器上的IIS.在构建事件,文件包含/排除等方面,一切都很完美......

但是,我遇到了如何部署软件包的问题.每当我将程序包部署到服务器时,IIS设置都会被吹走.例如,我可以设置缓存过期标头或打开静态压缩,在部署我的包后,它们将恢复为服务器的默认值.

有谁知道我怎么能解决这个问题?是否有我可以通过的参数或我可以忽略的规则?

Say*_*imi 5

我认为你遇到的不同于你的想法.

在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>
Run Code Online (Sandbox Code Playgroud)

那么当您执行同步时,包中的web.config会覆盖web.config,其中包含已修改的属性.您需要做什么来根据需要在IIS 7中配置应用程序,然后从将其放入web.config文件中获取节点.或者,如果您希望将它放在web.debug.config或web.release.config中,如果您希望在发布时只在web.config中使用它.