Bagaimana cara mengaktifkan penelusuran WCF?

160

Memperbarui:

Saya telah mencoba mengaktifkan penelusuran WCF , tetapi masih belum berhasil ... Di bawah ini adalah pembaruan terakhir saya.

Apakah saya perlu izin untuk menulis ke lokasi di bawah ini?

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

Saya menggunakan .NET Framework 3.5.

Apa instruksi langkah demi langkah untuk mengaktifkan pelacakan WCF untuk tujuan debugging?

Nick Kahn
sumber

Jawaban:

230

Konfigurasi berikut yang diambil dari MSDN dapat diterapkan untuk memungkinkan pelacakan pada layanan WCF Anda .

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

Untuk melihat file log, Anda dapat menggunakan "C: \ Program Files \ Microsoft SDKs Windows \ v7.0A \ bin \ SvcTraceViewer.exe".

Jika "SvcTraceViewer.exe" tidak ada di sistem Anda, Anda dapat mengunduhnya dari paket "Microsoft Windows SDK untuk Windows 7 dan .NET Framework 4" di sini:

Windows SDK Unduh

Anda tidak perlu menginstal semuanya, hanya bagian ".NET Development / Tools".

Ketika / jika itu meledak selama instalasi dengan kesalahan non- sensis , jawaban Petopas untuk Windows 7 SDK Installation Failure menyelesaikan masalah saya.

Rohan West
sumber
18
Di mana saya melihat file tersebut dibuat Error.svclog?
Nick Kahn
4
File akan dihasilkan di direktori yang sama dengan rakitan Anda. Kemungkinan direktori bin Anda. Anda mungkin perlu mendaur ulang proses pekerja jika layanan Anda di-host di IIS.
Rohan West
9
Pastikan Pool Aplikasi Anda - Identitas memiliki izin untuk menulis ke folder itu. Saya biasanya memiliki akun khusus yang ditugaskan ke kumpulan aplikasi saya, dengan cara ini saya bisa memberikan akses baca \ tulis ke pengguna tertentu
Rohan West
2
Dalam lingkungan pengembangan, file kesalahan (initializeData = "Error.svclog") disimpan di dalam proyek solusi. Mengubahnya ke lokasi lain tidak berhasil.
LCJ
5
Saya dapat membuatnya untuk masuk ke folder dengan menggunakan ini: initializeData = "C: \ wcflogs \ wcf_svclog.svclog" />
Adrian Carr
32

Di web.config Anda (di server) tambahkan

<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
sumber
1
Saya telah menambahkan seperti ini karena saya tidak memiliki akses ke dev kecuali folder initializeData="\\servername\drive$\Project\WCFTraces.svclog"/>dan saya tidak melihat file yang dihasilkan setelah saya mencoba mengakses layanan.
Nick Kahn
5
Secara default buffer (mungkin dapat mengubah ini). Anda dapat memaksanya menyiram dengan mendaur ulang kumpulan aplikasi. Pastikan juga identitas kumpulan aplikasi dapat menulis ke lokasi.
Christoph
20

Buka direktori Microsoft SDK Anda. Jalan seperti ini:

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

Buka Editor Konfigurasi WCF (Microsoft Service Configuration Editor) dari direktori itu:

SvcConfigEditor.exe

(opsi lain untuk membuka alat ini adalah dengan menavigasi di Visual Studio 2017 ke "Tools"> "Editor Konfigurasi Layanan WCF")

editor konfigurasi wcf

Buka file .config Anda atau buat yang baru menggunakan editor dan arahkan ke Diagnostics.

Di sana Anda dapat mengklik "Aktifkan Pencatatan Pesan".

aktifkan messagelogging

Info lebih lanjut: https://msdn.microsoft.com/en-us/library/ms732009(v=vs.110).aspx

Dengan penelusur jejak dari direktori yang sama Anda dapat membuka file log jejak:

SvcTraceViewer.exe

Anda juga dapat mengaktifkan penelusuran menggunakan WMI. Info lebih lanjut: https://msdn.microsoft.com/en-us/library/ms730064(v=vs.110).aspx

juFo
sumber
2
terima kasih banyak telah memperkenalkan saya ke utilitas GUI ini. itu akan membuat mengedit file konfigurasi jauh lebih mudah!
symbiont
Awesome.it banyak membantu saya untuk memahami Tracelog.
ksrds
1

Alih-alih Anda menambahkan bit secara manual pelacakan ke web.config, Anda juga dapat mencoba menggunakan editor konfigurasi WCF yang dilengkapi dengan VS SDK untuk mengaktifkan penelusuran.

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

CSharped
sumber