Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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
C# 定义跟踪源时,应用程序配置中不支持属性Tracemode_C#_.net_App Config_Trace - Fatal编程技术网

C# 定义跟踪源时,应用程序配置中不支持属性Tracemode

C# 定义跟踪源时,应用程序配置中不支持属性Tracemode,c#,.net,app-config,trace,C#,.net,App Config,Trace,有很多教程介绍了app.config中的跟踪模式。。其中之一是,它应该与.Net framework的2-4.5版配合使用 <configuration> <system.diagnostics> <sources> <source name="System.Net" tracemode="includehex" maxdatasize="1024"> <listeners>

有很多教程介绍了app.config中的跟踪模式。。其中之一是,它应该与.Net framework的2-4.5版配合使用

<configuration>
  <system.diagnostics>
    <sources>
      <source name="System.Net" tracemode="includehex" maxdatasize="1024">
        <listeners>
          <add name="System.Net"/>
        </listeners>
      </source>
      <source name="System.Net.Sockets">
        <listeners>
          <add name="System.Net"/>
        </listeners>
      </source>
      <source name="System.Net.Cache">
        <listeners>
          <add name="System.Net"/>
        </listeners>
      </source>
    </sources>
    <switches>
      <add name="System.Net" value="Verbose"/>
      <add name="System.Net.Sockets" value="Verbose"/>
      <add name="System.Net.Cache" value="Verbose"/>
    </switches>
    <sharedListeners>
      <add name="System.Net"
        type="System.Diagnostics.TextWriterTraceListener"
        initializeData="network.log"
      />
    </sharedListeners>
    <trace autoflush="true"/>
  </system.diagnostics>
</configuration>

在我的例子中,源属性被标记为无效/不可用

->source name=“System.Net”tracemode=“includeEx”maxdatasize=“1024”

我需要定义tracemode属性来禁用网络跟踪日志文件中的十六进制输出。我搜索了varoius资源,但每个人都说“不能,忽略错误”。但是忽略没有帮助,只是跳过属性,使用默认值

我无法通过代码使用跟踪,因为我需要直接跟踪无法直接定义的Net/Net.Sockets

我用两个版本的VisualStudio(2005、2012)和各种框架设置(2、3、4)在不同的项目上尝试了这些设置,但没有任何帮助


为什么属性被标记为无效?

在您发布的MSDN文章中,只需将tracemode设置为“protocolonly”,并且不应写入十六进制。

我也有同样的问题,但我意识到不能为我们要插入的源代码中列出的所有程序集指定属性tracemode

即使VS代码编辑器将此属性提升为不允许,它也可以在System.Net程序集上工作,因此也可以在其每个子级上工作(在我的情况下,这对我来说很重要)

下面是一个导致功能性web.config的示例:

<system.diagnostics>
<trace autoflush="true">
</trace>
<sources>
  <source name="System.Net" tracemode="protocolonly" switchValue ="All">
    <listeners>
      <add name="log4net" />
    </listeners>
  </source>
  <source name="System.Net.Cache" tracemode="protocolonly" switchValue ="All">
    <listeners>
      <add name="log4net" />
    </listeners>
  </source>
  <source name="System.Net.Http" tracemode="protocolonly" switchValue ="All">
    <listeners>
      <add name="log4net" />
    </listeners>
  </source>
  <source name="System.Net.HttpListener" tracemode="protocolonly" switchValue ="All">
    <listeners>
      <add name="log4net" />
    </listeners>
  </source>
  <source name="System.Net.Sockets" tracemode="protocolonly" switchValue ="All">
    <listeners>
      <add name="log4net" />
    </listeners>
  </source>
  <source name="System.ServiceModel" propagateActivity="true" switchValue ="All">
    <listeners>
      <add name="log4net" />
    </listeners>
  </source>
  <source name="System.Web.Services.Asmx" switchValue ="All">
    <listeners>
      <add name="log4net" />
    </listeners>
  </source>
</sources>


希望我的2美分有帮助。

不幸的是,这些属性被忽略了。它被标记为无效,并使用默认值,无论我使用tracemode=“includeEx”还是tracemode=“protocolonly”不幸的是,您的解决方案对我不起作用。我只使用“System.Net”的子项,但tracemode=“protocolonly”,像您一样设置所有内容,但仍然不更改任何内容(仍然包括十六进制输出)。