Сообщение SOAP пусто при перехвате MessageLoggingTraceRecords с помощью CustomTraceListener

Я хочу написать CustomTraceListener, который записывает все данные в БД SQL Server. Вот заглушка для него:

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

}

В переопределенном методе TraceData я хочу перехватывать сообщения SOAP, отправленные в мою службу WCF. Но когда я проверяю, что находится в параметре "данные", я получаю следующее: (извините за публикацию xml в виде изображений - кажется, редактор SO не разрешает некоторые ключевые слова xml в сообщениях):

введите здесь описание изображенияНо согласно стандартному XmlWriterTraceListener я должен получить это:

введите здесь описание изображения

Как настроить TraceListener, чтобы не удалять сообщения SOAP? Мой конфиг здесь:

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


person Dima    schedule 27.04.2011    source источник
comment
Вы нашли решение своей проблемы?   -  person lakai    schedule 09.08.2011
comment
К сожалению нет. Какое-то время я использовал стандартный XmlWriterTraceListener в качестве заглушки.   -  person Dima    schedule 09.08.2011


Ответы (1)


Есть ли причина, по которой вы не используете встроенный прослушиватель трассировки базы данных? См.: Прослушиватель трассировки базы данных корпоративной библиотеки?.

person Jacobs Data Solutions    schedule 12.08.2011