Làm thế nào để bật theo dõi WCF?


160

Cập nhật:

Tôi đã cố gắng bật theo dõi WCF , nhưng vẫn không thành công ... Dưới đây là cập nhật mới nhất của tôi.

Tôi có cần sự cho phép để viết vào vị trí dưới đây không?

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

Tôi đang sử dụng .NET Framework 3.5.

Hướng dẫn từng bước để bật theo dõi WCF cho mục đích gỡ lỗi là gì?

Câu trả lời:


230

Cấu hình sau đây được lấy từ MSDN có thể được áp dụng để cho phép theo dõi trên dịch vụ WCF của bạn .

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

Để xem tệp nhật ký, bạn có thể sử dụng "C: \ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ bin \ SvcTraceViewer.exe".

Nếu "SvcTraceViewer.exe" không có trên hệ thống của bạn, bạn có thể tải xuống từ gói "Microsoft Windows SDK cho Windows 7 và .NET Framework 4" tại đây:

Tải xuống SDK Windows

Bạn không phải cài đặt toàn bộ, chỉ là phần "Công cụ / Phát triển .NET".

Khi / nếu nó bị đánh bom trong khi cài đặt với một lỗi không nhạy cảm, câu trả lời của Petopas đối với Lỗi cài đặt SDK của Windows 7 đã giải quyết vấn đề của tôi.


18
Tôi thấy tập tin này ở Error.svclogđâu?
Nick Kahn

4
Các tập tin sẽ được tạo ra trong cùng thư mục với lắp ráp của bạn. Nhiều khả năng thư mục bin của bạn. Bạn có thể cần tái chế quy trình worker nếu dịch vụ của bạn được lưu trữ trong IIS.
Rohan West

9
Đảm bảo rằng Nhóm ứng dụng của bạn - Danh tính có quyền ghi vào thư mục đó. Tôi thường có một tài khoản chuyên dụng được gán cho nhóm ứng dụng của mình, bằng cách này tôi có thể cấp quyền truy cập đọc \ write cho người dùng cụ thể đó
Rohan West

2
Trong môi trường phát triển, tệp Error (initizeData = "Error.svclog") được lưu trữ bên trong dự án giải pháp. Thay đổi nó sang các vị trí khác không hoạt động.
LCJ

5
Tôi đã có thể lấy nó để đăng nhập vào một thư mục bằng cách sử dụng: initizeData = "C: \ wcflogs \ wcf_svclog.svclog" />
Adrian Carr

32

Trong web.config của bạn (trên máy chủ) thêm

<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
Tôi đã thêm như thế này vì tôi không có quyền truy cập vào dev ngoại trừ thư mục initializeData="\\servername\drive$\Project\WCFTraces.svclog"/>và tôi không thấy tệp đó được tạo sau khi tôi cố gắng truy cập các dịch vụ.
Nick Kahn

5
Theo mặc định, nó được đệm (có thể thay đổi điều này). Bạn có thể buộc nó tuôn ra bằng cách tái chế nhóm ứng dụng. Cũng đảm bảo nhận dạng nhóm ứng dụng có thể ghi vào vị trí.
Christoph

20

Chuyển đến thư mục Microsoft SDKs của bạn. Một con đường như thế này:

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

Mở Trình chỉnh sửa cấu hình WCF (Trình chỉnh sửa cấu hình dịch vụ của Microsoft) từ thư mục đó:

SvcConfigEditor.exe

(một tùy chọn khác để mở công cụ này là bằng cách điều hướng trong Visual Studio 2017 đến "Công cụ"> "Trình chỉnh sửa cấu hình dịch vụ WCF")

biên tập cấu hình wcf

Mở tệp .config của bạn hoặc tạo tệp mới bằng trình chỉnh sửa và điều hướng đến Chẩn đoán.

Ở đó bạn có thể nhấp vào "Bật MessageLogging".

cho phép gây rối

Thông tin thêm: https://msdn.microsoft.com/en-us/l Library / ms732009 (v = vs.110) .aspx

Với trình xem theo dõi từ cùng thư mục, bạn có thể mở tệp nhật ký theo dõi:

SvcTraceViewer.exe

Bạn cũng có thể kích hoạt theo dõi bằng WMI. Thông tin thêm: https://msdn.microsoft.com/en-us/l Library / ms730064 (v = vs.110) .aspx


2
cảm ơn bạn rất nhiều vì đã giới thiệu cho tôi tiện ích GUI này. nó sẽ làm cho việc chỉnh sửa các tập tin cấu hình dễ dàng hơn nhiều!
cộng sinh

Awesome.it giúp tôi rất nhiều để hiểu Tracelog.
ksrds

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.