2011-04-27 3 views
0

모든 데이터를 SQL Server DB에 쓰는 CustomTraceListener를 작성하고 싶습니다. 는 여기에 Stub의 :CustomTraceListener로 MessageLoggingTraceRecords를 catch 할 때 SOAP 메시지가 비어 있습니다.

public class SqlTraceListener : TraceListener 
{ 
    public SqlTraceListener() 
     : base() 
    { } 

    public SqlTraceListener(String name) 
     : base(name) 
    { } 

    protected override string[] GetSupportedAttributes() 
    { 
     List<string> attributes = new List<string>(); 
     attributes.Add("connectionString"); 
     attributes.Add("actionFilter"); 
     attributes.Add("hostFilter"); 
     return base.GetSupportedAttributes(); 
    } 

    public override void TraceData(TraceEventCache eventCache, string source, TraceEventType eventType, int id, object data) 
    { }//Other empty methods... 

} 

재정의 된 메서드에서 내 WCF 서비스로 전송 SOAP 메시지를 잡으려면 TraceData. 내가 확인하지만 나는이 얻을 "데이터"매개 변수에 포함되는 것 : (사진으로 XML을 게시 미안 - 그렇게 편집기 게시물에서 일부 XML 키워드를 허용하지 않는 것) :

enter image description here 그러나 표준에 따라

enter image description here

어떻게 SOAP 메시지를 제거하지 TraceListener에서를 구성하는 방법 : XmlWriterTraceListener 나는이 얻을해야합니까? 내 설정은 여기에 있습니다 :

<system.diagnostics> 
<sources> 
    <source name="System.ServiceModel.MessageLogging"> 
    <listeners> 
     <add name="xml"/> 
     <add name="sql"/> 
    </listeners> 
    </source> 
</sources> 
<sharedListeners> 
    <add initializeData="C:\logs\StockPriceService.svclog" type="System.Diagnostics.XmlWriterTraceListener" name="xml"/> 
    <add type="SqlTraceListener.SqlTraceListener, SqlTraceListener" name="sql"/> 
</sharedListeners> 
<trace autoflush="true"/> 

+0

문제의 해결책을 찾으셨습니까? – lakai

+1

불행히도 없습니다. 표준 XmlWriterTraceListener를 한동안 스텁으로 사용했습니다. – Dima

답변