Service Trace Viewer не отображает все - PullRequest
1 голос
/ 21 июня 2011

У меня есть служба WCF, размещенная на IIS, которую я хочу отслеживать с помощью средства просмотра трассировки служб. Вот конфигурация в файле 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. когда вызывается метод веб-службы, мне удается найти конверт с необработанным ответом, который я отправляю обратно, но в большинстве случаев запрос просто не появляется
  2. хуже того, иногда файл .svclog даже не содержит никаких действий, когда я на 100% уверен, что некоторые вызовы были обработаны, даже после iisreset

Почему это?

Спасибо

1 Ответ

2 голосов
/ 11 апреля 2012

У меня была та же проблема, и я искал предложения, но не нашел ничего, что можно было бы напрямую использовать. После некоторых экспериментов я нашел это:

мне нужно было увеличить макс. размер сообщений, например:

<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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...