ОК, у меня все получилось. Это можно решить путем реализации пользовательского SoapFilter
, который должен быть первым в цепочке фильтров:
public class TraceAssertion : PolicyAssertion
{
public override SoapFilter CreateClientInputFilter(FilterCreationContext context)
{
return new SoapTraceFilter();
}
public override SoapFilter CreateClientOutputFilter(FilterCreationContext context)
{
return new SoapTraceFilter();
}
public override SoapFilter CreateServiceInputFilter(FilterCreationContext context)
{
return null;
}
public override SoapFilter CreateServiceOutputFilter(FilterCreationContext context)
{
return null;
}
}
public class SoapTraceFilter : SoapFilter
{
public override SoapFilterResult ProcessMessage(SoapEnvelope envelope)
{
envelope.Save("c:\\log\\" + DateTime.Now.Ticks + ".soap.xml");
return SoapFilterResult.Continue;
}
}