วิธีเปิดการติดตาม 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 ในการติดตั้ง SDK ของ Windows 7 ล้มเหลวแก้ปัญหาของฉันได้


18
ฉันเห็นไฟล์ถูกสร้างขึ้นที่Error.svclogใด
Nick Kahn

4
ไฟล์จะถูกสร้างในไดเรกทอรีเดียวกับชุดประกอบของคุณ เป็นไปได้มากที่สุดที่ไดเรกทอรีของ bin คุณอาจต้องรีไซเคิลกระบวนการของผู้ปฏิบัติงานหากบริการของคุณโฮสต์ใน IIS
Rohan West

9
ตรวจสอบให้แน่ใจว่า Application Pool - Identity ของคุณมีสิทธิ์เขียนไปยังโฟลเดอร์นั้น ฉันมักจะมีบัญชีเฉพาะที่กำหนดให้กับกลุ่มแอปพลิเคชันของฉันด้วยวิธีนี้ฉันสามารถให้สิทธิ์การเข้าถึงเพื่ออ่าน \ write แก่ผู้ใช้รายนั้น
Rohan West

2
ในสภาพแวดล้อมการพัฒนาไฟล์ Error (initializeData = "Error.svclog") จะถูกเก็บไว้ในโครงการแก้ไขปัญหา การเปลี่ยนเป็นตำแหน่งอื่นไม่ทำงาน
LCJ

5
ฉันสามารถทำให้มันเข้าสู่โฟลเดอร์โดยใช้สิ่งนี้: initializeData = "C: \ wcflogs \ wcf_svclog.svclog" />
Adrian Carr

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
ฉันได้เพิ่มเช่นนี้เนื่องจากฉันไม่สามารถเข้าถึง dev ยกเว้นโฟลเดอร์initializeData="\\servername\drive$\Project\WCFTraces.svclog"/>และฉันไม่เห็นไฟล์ที่ถูกสร้างขึ้นหลังจากที่ฉันพยายามเข้าถึงบริการ
Nick Kahn

5
โดยค่าเริ่มต้นมันจะถูกบัฟเฟอร์ (อาจจะสามารถเปลี่ยนแปลงได้) คุณสามารถบังคับให้ล้างข้อมูลโดยรีไซเคิลแอพ ตรวจสอบให้แน่ใจว่าข้อมูลประจำตัวของแอพสามารถเขียนไปยังตำแหน่งได้
Christoph

20

ไปที่ไดเรกทอรี Microsoft SDK ของคุณ เส้นทางแบบนี้:

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

เปิดตัวแก้ไขการกำหนดค่า WCF (Microsoft Service Configuration Editor) จากไดเรกทอรีนั้น:

SvcConfigEditor.exe

(ตัวเลือกอื่นเพื่อเปิดเครื่องมือนี้คือการนำทางใน Visual Studio 2017 ไปที่ "เครื่องมือ"> "ตัวแก้ไขการกำหนดค่าบริการ WCF")

แก้ไขการกำหนดค่า wcf

เปิดไฟล์. config ของคุณหรือสร้างไฟล์ใหม่โดยใช้เครื่องมือแก้ไขและไปที่ Diagnostics

คุณสามารถคลิกที่ "เปิดใช้งาน MessageLogging"

เปิดใช้งาน 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 นี้ มันจะทำให้การแก้ไขไฟล์ปรับแต่งง่ายขึ้นมาก!
symbiont

Awesome.it ช่วยฉันได้มากในการทำความเข้าใจกับ Tracelog
ksrds

1

แทนที่จะเพิ่มการเปิดใช้งานการสืบค้นกลับบิตลงใน web.config ด้วยตนเองคุณสามารถลองใช้เครื่องมือแก้ไขการกำหนดค่า WCF ซึ่งมาพร้อมกับ VS SDK เพื่อเปิดใช้งานการติดตาม

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.