我终于有了 TeamCity 设置来构建源代码控制更改,以及一个单独的 MSBuild 任务设置,使用“包”目标和生成的“deploy.cmd”脚本打包并部署到登台服务器上的 IIS。在构建事件、文件包含/排除等方面,一切都很完美……
但是,我遇到了如何部署包的问题。每当我将包部署到服务器时,IIS 设置都会被吹走。例如,我可以设置缓存过期标头或打开静态压缩,在我部署我的包后,它们将恢复为服务器的默认值。
有谁知道我该如何解决这个问题?是否有我可以传递的参数或我可以忽略的规则?
我终于有了 TeamCity 设置来构建源代码控制更改,以及一个单独的 MSBuild 任务设置,使用“包”目标和生成的“deploy.cmd”脚本打包并部署到登台服务器上的 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 中。