Какое ведение журнала WCF следует включить, чтобы помочь отследить причину сбоя канала? - PullRequest
1 голос
/ 17 декабря 2009

Канал WCF каким-то образом переходит в сбойное состояние на клиенте. Какое отображение журнала WCF я включаю, чтобы помочь отследить причину?

Как включить ведение журнала из кода? (Канал и т. Д. Настраивается в коде, а не в файле конфигурации на каждой стороне)


Редактировать: обе стороны являются приложениями Winforms, поэтому у меня нет файла web.config, но у меня есть файл app.config.

Ответы [ 3 ]

3 голосов
/ 17 декабря 2009

Вам не нужно добавлять код входа в систему. И на сервисе (web.config), и на клиенте (app.config) добавьте:

<system.diagnostics>
<sources>
  <source name="System.ServiceModel" switchValue="Verbose, ActivityTracing">
    <listeners>
      <add name="xml"/>
    </listeners>
  </source>
  <source name="System.ServiceModel.MessageLogging" switchValue="Verbose">
    <listeners>
      <add name="xml"/>
    </listeners>
  </source>
</sources>
<sharedListeners>
  <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" 
     initializeData="c:\logs\logfilename.svclog"/>
</sharedListeners>
<trace autoflush="true"/>
</system.diagnostics>

Для просмотра файлов следует использовать Service Trace Viewer (SvcTraceViewer.exe, включенный в SDK v6.0a).

1 голос
/ 17 декабря 2009

вы все равно можете включить ведение журнала из web.config с помощью элемента system.diagnostics (даже если ваш канал был настроен в коде).

Вот некоторые ссылки MSDN: (1) (2)

Вы также можете посмотреть> здесь <для пошагового прохождения. </p>

0 голосов
/ 17 декабря 2009

Немного в темноте, но это может быть скорее проблемой отладки, чем регистрацией.

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

...