【问题标题】:XML varaiable substitution option will be only replaces the value for single key in web.configXML 变量替换选项将仅替换 web.config 中单个键的值
【发布时间】:2018-07-13 01:04:08
【问题描述】:

我正在使用 VSTS 开发 DevOps。我有一个带有 Web.config 文件的 Web 项目(例如 webproject1),如下所示:

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<configSections> 

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> 

<appSettings>

<add key="IndexDirectory" value="D:\wwwroot\XXXX\Indexes" /> 

</appSettings> 

<caching localActiveProvider="MemoryCacheProvider" globalActiveProvider="RedisCacheProvider"> <strategy name="LocalAndGlobal" localDefaultTTL="0:00:04:00" globalDefaultTTL="0:04:00:00" /> <provider name="RedisCacheProvider"> 

<setting name="connectionString" value="XXXXXXXXXXXXXX" />

</provider>

<provider name="AppFabricCacheProvider"> 

<setting name="cacheName" value="XXXX"/>

<setting name="hostName" value="XXXX" /> 

<setting name="cachePort" value="22233" />

<setting name="maxConnectionsToServer" value="100" />

</provider> 

<provider name="MemoryCacheProvider"> 

</provider> <cacheKeyTTL> 

<add key="LoggedInEnabledUserIDs" value="0.00:02:00" /> 

</cacheKeyTTL> 

</caching> 

</configuration>

 

我使用 IIS Web App Manage 和 IIS Web App Deploy Deployment 任务在 VSTS 中为 Web 项目创建了发布定义。我想用 Web.config 文件中的客户端键值替换键值,因为我按照此文档使用 VSTS 转换 Web.Config 文件“正确”,并在 IIS web 的文件转换和变量替换选项下启用了 XML 变量替换选项App Deploy VSTS 发布任务。

我在“变量”选项卡下使用客户端值声明了 IndexDirectory、connectionString 和 maxConnectionsToServer。发布成功后,我观察到只有 IndexDirectory 值正在更新,但 connectionString 和 maxConnectionsToServer 没有使用变量选项卡中提供的值进行更新。

我在不同的 VSTS 帐户中尝试了相同的发布步骤,它正在更新所有三个值。但仅在客户端 VSTS 帐户中不会更新所有三个值。

【问题讨论】:

    标签: xml iis web-config azure-devops azure-pipelines-release-pipeline


    【解决方案1】:

    结果的原因是 IIS Web App Deploy 任务的 XML variable substitution 刚好匹配 appSettingsapplicationSettings 中的 'key' 或 'name' 条目、connectionStringsconfigSections (&lt;section …/&gt;) 元素的配置文件和 parameters.xml。

    因此,IndexDirectory 值可以更新,但其他值不能。我建议您可以在这些部分(appSettings、connectionsStrings)中定义它们。

    【讨论】:

    • 但我在不同的 VSTS 帐户中尝试了相同的发布步骤,它正在更新所有值。这是在开发者社区developercommunity.visualstudio.com/content/problem/193232/… 中发布的相同问题的链接
    • @pradeep 你能在 OneDrive 上分享那个发布(工作)日志吗(添加 system.debug 变量并设置为 true,然后开始发布并分享这个日志)?
    • 这是设置系统后日志的一个驱动器链接。在变量选项卡下调试为真。 1drv.ms/u/s!At-JUB9_wu9CwQPlWR5TWcBQdIwh
    • @pradeep 根据日志,它只是更新了IndexDirectory,是不是发布的日志可以更新所有值?
    • Yes starian 是更新所有值的发布日志。
    猜你喜欢
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多