Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 使用Web.Config转换来更改;“尺寸”;log4net中的元素;参数";_Asp.net_Web Config Transform_Xdt Transform - Fatal编程技术网

Asp.net 使用Web.Config转换来更改;“尺寸”;log4net中的元素;参数";

Asp.net 使用Web.Config转换来更改;“尺寸”;log4net中的元素;参数";,asp.net,web-config-transform,xdt-transform,Asp.net,Web Config Transform,Xdt Transform,我正在做一个ASP.NET项目,它使用log4net。在开发环境中,我希望将@stackTrace参数的size元素设置为比其他环境中更高的值 log4net.config文件的结构为: <?xml version="1.0"?> <configuration> <log4net debug="true"> <appender name="SQLServerAppender" type="log4net.Appender.AdoN

我正在做一个ASP.NET项目,它使用log4net。在开发环境中,我希望将
@stackTrace
参数的
size
元素设置为比其他环境中更高的值

log4net.config文件的结构为:

<?xml version="1.0"?>
<configuration>
    <log4net debug="true">
        <appender name="SQLServerAppender" type="log4net.Appender.AdoNetAppender">
            <parameter>
                <parameterName value="@stackTrace"/>
                <dbType value="String"/>
                <size value="1000"/>
                <layout type="log4net.Layout.RawPropertyLayout">
                    <key value="stackTrace"/>
                </layout>
            </parameter>
            <!-- More parameters -->
        </appender>
    </log4net>
</configuration>
“移除”是试图让事情发生的最后手段


我应该如何执行所需的转换?在这种情况下,我不清楚如何将
xdt:Locator
xdt:Transform
结合起来。

我可能会弄错,但我认为Web.config转换不能应用于其他任意xml文件

为此,我通常使用SlowCheetah

这是一个非常好的工具,非常容易使用(类似于web.config转换,但可以应用于任何东西),并且与自动化构建和部署集成得非常好

下面是Scott Hanselman的指南:
我可能弄错了,但我认为Web.config转换不能应用于其他任意xml文件

为此,我通常使用SlowCheetah

这是一个非常好的工具,非常容易使用(类似于web.config转换,但可以应用于任何东西),并且与自动化构建和部署集成得非常好

下面是Scott Hanselman的指南: 试试这个:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<log4net>
  <appender name="SQLServerAppender" type="log4net.Appender.AdoNetAppender">
    <parameter>
       <size value="2000" xdt:Locator="XPath(configuration/log4net/appender[@name='SQLServerAppender']/parameter[parameterName[@value='@stackTrace']])" xdt:Transform="SetAttributes"/>
    </parameter>
  </appender>
</log4net>

试试这个:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<log4net>
  <appender name="SQLServerAppender" type="log4net.Appender.AdoNetAppender">
    <parameter>
       <size value="2000" xdt:Locator="XPath(configuration/log4net/appender[@name='SQLServerAppender']/parameter[parameterName[@value='@stackTrace']])" xdt:Transform="SetAttributes"/>
    </parameter>
  </appender>
</log4net>

在回答不起作用后,我四处玩了一会儿,想知道为什么不起作用

我首先把
值放回原处(为了清楚起见,我把它从帖子中删掉了),它确实起了作用。这证明找到了正确的
,但没有找到正确的
。“找到”或“定位”。这是一个暗示

我查看了XPath表达式,发现它正试图定位
,该表达式的
属性值为
,属性值为
@stackTrace
。因此我尝试使用
条件

<parameter xdt:Locator="Condition([parameterName[@value='@stackTrace']])" 
    xdt:Transform="Replace">
</parameter>

这成功了

因此,最后的转换是:

<parameter xdt:Locator="Condition([parameterName[@value='@stackTrace']])">
    <size value="2000" xdt:Transform="Replace" />
</parameter>

在回答不起作用后,我四处玩了一会儿,想找出原因

我首先把
值放回原处(为了清楚起见,我把它从帖子中删掉了),它确实起了作用。这证明找到了正确的
,但没有找到正确的
。“找到”或“定位”。这是一个暗示

我查看了XPath表达式,发现它正试图定位
,该表达式的
属性值为
,属性值为
@stackTrace
。因此我尝试使用
条件

<parameter xdt:Locator="Condition([parameterName[@value='@stackTrace']])" 
    xdt:Transform="Replace">
</parameter>

这成功了

因此,最后的转换是:

<parameter xdt:Locator="Condition([parameterName[@value='@stackTrace']])">
    <size value="2000" xdt:Transform="Replace" />
</parameter>


如果我不清楚,很抱歉,我们已经在为log4net.config使用转换。为了清晰起见,我从文件中删除了其他变换。我的问题是这个特定的转换。如果我不清楚,很抱歉,但是我们已经在为log4net.config使用转换。为了清晰起见,我从文件中删除了其他变换。我的问题是这个特殊的转换。