Как включить трассировку WCF?

160

Обновить:

Я пытался включить трассировку WCF , но все равно безуспешно ... Ниже приводится мое последнее обновление.

Мне нужно разрешение, чтобы написать в расположении ниже?

  <system.diagnostics>
    <trace autoflush="true" />
    <sources>
      <source name="System.ServiceModel"
              switchValue="Information, ActivityTracing"
              propagateActivity="true">
        <listeners>
          <add name="sdt"
              type="System.Diagnostics.XmlWriterTraceListener"
              initializeData= "@\\myservername\folder1\traces.svclog" />
        </listeners>
      </source>
    </sources>
  </system.diagnostics>

Я использую .NET Framework 3.5.

Какова пошаговая инструкция для включения отслеживания WCF в целях отладки?

Ник Кан
источник

Ответы:

230

Следующая конфигурация, взятая из MSDN, может быть применена для включения трассировки в вашей службе WCF .

<configuration>
  <system.diagnostics>
    <sources>
      <source name="System.ServiceModel"
              switchValue="Information, ActivityTracing"
              propagateActivity="true" >
        <listeners>
             <add name="xml"/>
        </listeners>
      </source>
      <source name="System.ServiceModel.MessageLogging">
        <listeners>
            <add name="xml"/>
        </listeners>
      </source>
      <source name="myUserTraceSource"
              switchValue="Information, ActivityTracing">
        <listeners>
            <add name="xml"/>
        </listeners>
      </source>
    </sources>
    <sharedListeners>
        <add name="xml"
             type="System.Diagnostics.XmlWriterTraceListener"
             initializeData="Error.svclog" />
    </sharedListeners>
  </system.diagnostics>
</configuration>

Чтобы просмотреть файл журнала, вы можете использовать «C: \ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ bin \ SvcTraceViewer.exe».

Если файл «SvcTraceViewer.exe» отсутствует в вашей системе, его можно загрузить из пакета «Microsoft Windows SDK для Windows 7 и .NET Framework 4» здесь:

Windows SDK Скачать

Вам не нужно устанавливать все это, только часть «.NET Development / Tools».

Когда / если он взрывается во время установки с несущественной ошибкой, ответ Petopas на Windows 7 SDK Installation Failure решил мою проблему.

Рохан Вест
источник
18
где я вижу файл создан Error.svclog?
Ник Кан
4
Файл будет создан в том же каталоге, что и ваша сборка. Скорее всего, ваш каталог bin. Вам может потребоваться перезапустить рабочий процесс, если ваши службы размещены в IIS.
Рохан Вест
9
Убедитесь, что у вашего пула приложений - удостоверение есть разрешение на запись в эту папку. У меня обычно есть выделенная учетная запись, назначенная моему пулу приложений, таким образом, я могу предоставить доступ на чтение / запись этому конкретному пользователю
Rohan West,
2
В среде разработки файл ошибок (initializeData = "Error.svclog") хранится в проекте решения. Изменение его на другие места не сработало.
ЖЖ,
5
Мне удалось получить его для входа в папку с помощью этого: initializeData = "C: \ wcflogs \ wcf_svclog.svclog" />
Адриан Карр
32

В вашем web.config (на сервере) добавьте

<system.diagnostics>
 <sources>
  <source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true">
   <listeners>
    <add name="traceListener" type="System.Diagnostics.XmlWriterTraceListener" initializeData="C:\logs\Traces.svclog"/>
   </listeners>
  </source>
 </sources>
</system.diagnostics>
Christoph
источник
1
Я добавил, как это, так как у меня нет доступа к устройству, кроме папки, initializeData="\\servername\drive$\Project\WCFTraces.svclog"/>и я не вижу, что файл создается после того, как я пытаюсь получить доступ к службам.
Ник Кан
5
По умолчанию он буферизируется (может быть в состоянии изменить это). Вы можете принудительно сбросить его, переработав пул приложений. Также убедитесь, что удостоверение пула приложений может записывать в местоположение.
Кристоф
20

Перейдите в каталог Microsoft SDK. Путь как это:

C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools

Откройте редактор конфигурации WCF (редактор конфигурации службы Microsoft) из этого каталога:

SvcConfigEditor.exe

(Еще один вариант открыть этот инструмент - перейти в Visual Studio 2017 в «Инструменты»> «Редактор конфигурации служб WCF»).

редактор конфигурации wcf

Откройте файл .config или создайте новый с помощью редактора и перейдите к разделу «Диагностика».

Там вы можете нажать «Включить MessageLogging».

включить ведение сообщений

Дополнительная информация: https://msdn.microsoft.com/en-us/library/ms732009(v=vs.110).aspx

С помощью средства просмотра трассировки из того же каталога вы можете открыть файлы журнала трассировки:

SvcTraceViewer.exe

Вы также можете включить трассировку с помощью WMI. Дополнительная информация: https://msdn.microsoft.com/en-us/library/ms730064(v=vs.110).aspx

ЮФО
источник
2
Большое вам спасибо за знакомство с этой утилитой GUI. это сделает редактирование файлов конфигурации намного проще!
симбионт
Awesome.it очень помогает мне понять Tracelog.
ksrds
1

Вместо того, чтобы вручную добавлять бит включения трассировки в web.config, вы также можете попробовать использовать редактор конфигурации WCF, который поставляется вместе с VS SDK, чтобы включить трассировку.

https://stackoverflow.com/a/16715631/2218571

CSharped
источник