2012-04-19 42 views
6

Ứng dụng tôi đang xây dựng cho thấy một số dịch vụ WCF (A, B). Bên trong, nó tiêu thụ một số dịch vụ WCF khác đang chạy trên mạng nội bộ của chúng tôi (X, Y).Bỏ qua một số dịch vụ WCF nhất định từ các bản ghi nhật ký WCF

Sử dụng ghi nhật ký thông báo WCF, tôi muốn chỉ lưu lượng truy cập nhật ký giữa các dịch vụ của chúng tôi A, B và các khách hàng bên ngoài gọi cho họ.

Không có dữ liệu giữa các dịch vụ của tôi (A, B) và các dịch vụ phụ trợ (X, Y) phải được WCF ghi nhật ký.

lọc qua System.ServiceModel/chẩn đoán/messageLogging/bộ lọc đã thành công một phần với:

<filters> 
     <add nodeQuota="10" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
     /s:Envelope/s:Header/*[contains(text(),"MyServiceA")] 
     </add> 
     <add nodeQuota="10" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:a="http://schemas.microsoft.com/ws/2005/05/addressing/none"> 
     /s:Envelope/s:Header/a:Action[contains(text(),"MyServiceA")] 
     </add> 
    </filters> 

Tuy nhiên điều này không nắm bắt được phản hồi từ dịch vụ của chúng tôi, như SOAP phản ứng không chứa văn bản để lọc trên.

Các WCF MessageLogTraceRecord không chứa Action SOAP, nhưng tôi dường như không thể xây dựng một bộ lọc để truy cập vào nó:

<MessageLogTraceRecord> 
    <Addressing xmlns="http://schemas.microsoft.com/2004/06/ServiceModel/Management/MessageTrace> 
    <Action>http://opia.api.translink.com.au/ApiLocationService/2012/04/IApiLocationService/ResolveInputServiceFaultFault</Action> 
    </Addressing> 
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
     <s:Body> 
     ... 

WCF nhắn đăng nhập và kết thúc để kết thúc truy tìm được kích hoạt với tất cả các tùy chọn thiết lập để thật. Ghi nhật ký mức ActivityTracing và Warning được kích hoạt.

+1

Bạn muốn lọc bởi vì bạn lo lắng về kích thước tập tin hoặc tiếng ồn? MS Service Trace Viewer UI khá tốt trong việc lọc. –

+1

Chủ yếu là tiếng ồn. Các dịch vụ "bên trong" cực kỳ trò chuyện, một cuộc gọi đến dịch vụ của chúng tôi kết thúc tốt hơn 30 cuộc gọi đến dịch vụ của họ. Tuy nhiên, giao diện dịch vụ nội bộ được kiểm tra tốt và không thể thay đổi được. – geoffreys

Trả lời

2

Hãy thử điều này

<filters> 
     <add nodeQuota="10" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
     /s:Envelope/s:Header/*[contains(text(),"MyServiceA")] 
     </add> 
     <add nodeQuota="10" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:a="http://schemas.microsoft.com/ws/2005/05/addressing/none"> 
     /s:Envelope/s:Header/a:Action[contains(text(),"http://opia.api.translink.com.au/ApiLocationService/2012/04/IApiLocationService/ResolveInputServiceFaultFault")] 
     </add> 
    </filters> 

thay thế các văn bản "MyServiceA" trong bộ lọc hành động với URL trong MessageLogTraceRecord> Hành động

Các vấn đề liên quan