【问题标题】:Web.config Transform not working for SessionState or OutputCache elementsWeb.config 转换不适用于 SessionState 或 OutputCache 元素
【发布时间】:2020-02-06 06:15:49
【问题描述】:

我原来的网络配置:

<sessionState mode="Custom" customProvider="SessionStateStore" timeout="5">
    <providers>
        <add name="SessionStateStore" throwOnError="false" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="localhost" accessKey="sessionstate" port="6379" ssl="false" applicationName="ezimanager" connectionTimeoutInMilliseconds="30000" operationTimeoutInMilliseconds="30000" />
    </providers>
</sessionState>
<caching>
    <outputCache defaultProvider="RedisOutputCache">
        <providers>
<add name="RedisOutputCache" type="Microsoft.Web.Redis.RedisOutputCacheProvider" host="localhost" accessKey="outputcache" port="6379" ssl="false" connectionTimeoutInMilliseconds="30000" operationTimeoutInMilliseconds="30000" />
        </providers>
    </outputCache>
</caching>

我已经在元素上尝试了xdt:Locator="XPath(/configuration/system.web/caching/outputCache)",并在添加元素上设置了属性。 我在添加元素上尝试过xdt:Transform="SetAttributes(host,accessKey,ssl,port)" xdt:Locator="Match(name)",甚至只是xdt:Transform="SetAttributes"

当前的变换看起来像:

<system.web>
    <sessionState mode="Custom" customProvider="SessionStateStore" timeout="5">
        <providers>
            <add name="SessionStateStore"
                throwOnError="false"
                type="Microsoft.Web.Redis.RedisSessionStateProvider"
                host="actualHost"
                accessKey="actualAccessKey"
                port="6380"
                ssl="true"
                applicationName="ezimanager"
                connectionTimeoutInMilliseconds="30000"
                operationTimeoutInMilliseconds="30000"
                xdt:Transform="SetAttributes(host,accessKey,ssl,port)"
                xdt:Locator="Match(name)" />
            </providers>
        </sessionState>
    <caching>
        <outputCache defaultProvider="RedisOutputCache">
            <providers>
                <add name="RedisOutputCache"
                    type="Microsoft.Web.Redis.RedisOutputCacheProvider"
                    host="actualHost"
                    accessKey="actualAccessKey"
                    port="6380"
                    ssl="true"
                    connectionTimeoutInMilliseconds="30000"
                    operationTimeoutInMilliseconds="30000"
                    xdt:Transform="SetAttributes(host,accessKey,ssl,port)"
                    xdt:Locator="Match(name)"/>
            </providers>
        </outputCache>
    </caching>
</system.web>

我设法影响的唯一区别是转换有时会完全失败。否则不会发生变化。我错过了什么?

【问题讨论】:

  • 能否请您添加转换文件,以便我们看到您要转换的内容?如果您使用整个元素,您应该能够使用 xdt:Transform="Replace"。
  • 我已经完成了替换。我不能让 Remove 对这些元素中的任何一个做任何事情

标签: asp.net azure redis web-config-transform


【解决方案1】:

我们的 web.config 文件在 system.web 元素周围有一个 &lt;location path="." inheritInChildApplications="false"&gt; 元素

【讨论】:

    猜你喜欢
    • 2011-07-07
    • 2018-06-18
    • 2013-01-30
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    相关资源
    最近更新 更多