Як увімкнути трасування 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".

Коли / якщо він вибухнув під час встановлення з чуттєвою помилкою, відповідь Петопаса на помилку встановлення SDK Windows 7 SDK вирішила мою проблему.


18
де я бачу, як файл генерується Error.svclog?
Нік Кан

4
Файл буде згенеровано в тому ж каталозі, що і ваша збірка. Швидше за все, ваш каталог бін. Можливо, вам знадобиться переробити робочий процес, якщо ваші послуги розміщуються в IIS.
Рохан Вест

9
Переконайтесь, що ваш пул додатків - особистість має дозвіл на запис у цю папку. У мене зазвичай є спеціальний обліковий запис, присвоєний моєму пулу додатків, тому я можу надати доступ для читання \ запису саме цьому конкретному користувачеві
Rohan West

2
У середовищі розробки файл помилки (InitializeData = "Error.svclog") зберігається всередині проекту рішення. Змінити його на інші місця не вийшло.
LCJ

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>

1
я додав так, оскільки я не маю доступу до розробника, крім папки, initializeData="\\servername\drive$\Project\WCFTraces.svclog"/>і я не бачу, що цей файл генерується після того, як я намагаюся отримати доступ до служб.
Нік Кан

5
За замовчуванням він буферизований (можливо, зможе це змінити). Ви можете змусити його спалахнути, переробивши пул додатків. Також переконайтеся, що ідентифікатор пулу додатків може записувати в розташування.
Крістоф

20

Перейдіть у каталог SDK Microsoft. Такий шлях:

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

Відкрийте редактор конфігурації WCF (редактор конфігурації служби Microsoft) з цього каталогу:

SvcConfigEditor.exe

(Ще одним варіантом відкриття цього інструменту є навігація у Visual Studio 2017 в "Інструменти"> "Редактор конфігурації служби WCF")

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

Відкрийте файл .config або створіть новий за допомогою редактора та перейдіть до діагностики.

Там ви можете натиснути кнопку "Увімкнути повідомлення".

включити ведення журналів повідомлень

Більше інформації: 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.