Сообщение SOAP пусто при перехвате MessageLoggingTraceRecords с CustomTraceListener - PullRequest
0 голосов
/ 27 апреля 2011

Я хочу написать 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.Но когда я проверяю, что находится в параметре «data», я получаю следующее: (извините за публикацию xml в виде картинок - кажется, что редактор SO не допускает некоторые ключевые слова xml в сообщениях) :

enter image description here Но в соответствии со стандартным XmlWriterTraceListener я должен получить это:

enter image description here

Как настроить 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"/>

1 Ответ

0 голосов
/ 12 августа 2011

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

...