服务跟踪查看器不显示所有内容

时间:2011-06-21 10:52:01

标签: c# wcf iis

我有一个IIS托管的WCF服务,我想使用服务跟踪查看器进行跟踪。 这是web.config中的配置:

<configuration>
<!-- ... -->
<system.diagnostics>
    <sources>
        <source name="System.ServiceModel" switchValue="All,Information,ActivityTracing"
            propagateActivity="true">
            <listeners>
                <add type="System.Diagnostics.DefaultTraceListener" name="Default">
                    <filter type="" />
                </add>
                <add name="ServiceModelTraceListener">
                    <filter type="" />
                </add>
            </listeners>
        </source>
        <source name="System.ServiceModel.MessageLogging" switchValue="All">
            <listeners>
                <add type="System.Diagnostics.DefaultTraceListener" name="Default">
                    <filter type="" />
                </add>
                <add name="ServiceModelTraceListener" />
            </listeners>
        </source>
    </sources>
    <sharedListeners>
        <add initializeData="C:\Program Files\Archimede\TurniArc\log\web_tracelog.svclog"
            type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
            name="ServiceModelTraceListener" traceOutputOptions="DateTime">
            <filter type="" />
        </add>
    </sharedListeners>
   <trace autoflush="true" /> 
</system.diagnostics>
<!-- ... -->
<system.serviceModel>
    <diagnostics>
        <messageLogging maxMessagesToLog="10000"
         logEntireMessage="true"
         logMessagesAtServiceLevel="true"
         logMalformedMessages="true"
         logMessagesAtTransportLevel="true">
            <filters>
                <clear/>
            </filters>
        </messageLogging>
    </diagnostics>
<!-- ... -->
</system.serviceModel>
</configuration>

我只是在表面上看,有许多选项和功能我还没有理解,但我真的无法解释某些让我烦恼的事情:

  1. 当调用Web服务的方法时,我设法找到我发回的原始响应信封,但大多数情况下请求似乎不在那里
  2. 比这更糟糕的是,有时.svclog文件甚至不包含任何活动,当我100%确定已经处理了一些调用时,即使在iisreset之后
  3. 为什么?

    谢谢

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题并搜索了建议,但没有找到任何直接可用的东西。经过一些实验,我发现了这个:

我需要增加最大值。消息的大小,如下所示:

<system.serviceModel>
  <diagnostics>
    <messageLogging
       logEntireMessage="true"
       logMalformedMessages="false"
       logMessagesAtServiceLevel="true"
       logMessagesAtTransportLevel="false"
       maxMessagesToLog="3000"
       maxSizeOfMessageToLog="65000">
       <filters>
         <clear/>
       </filters>
    </messageLogging>
  </diagnostics>
</system.serviceModel>

如果您的跟踪日志为空,则可能是刷新问题。在我的wn机器上调试时,我不得不停止asp.net开发服务器。