У меня есть служба WCF, полученная из WSDL, предоставленного поставщиком. Когда клиент поставщика звонит в мой сервис, он получает сообщение об ошибке "The message with Action '' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher.
"
Я хотел бы посмотреть входящее сообщение SOAP, прежде чем эта ошибка будет выдана.
Я пытался создать атрибут с IServiceBehavior
:
[AttributeUsage(AttributeTargets.Class, Inherited = true, AllowMultiple = false)]
public sealed class AuditServiceBehavior : Attribute, IServiceBehavior
{
public AuditServiceBehavior() { }
public void AddBindingParameters(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase, Collection<ServiceEndpoint> endpoints, BindingParameterCollection bindingParameters)
{
Trace.TraceInformation("AuditService.AddBindingParameters called.");
}
public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
{
// Seems like the right place to invoke something?
Trace.TraceInformation("AuditService.ApplyDispatchBehavior called.");
}
}
Добавление этого атрибута в мою реализацию сервиса позволяет мне видеть сообщения Trace, но они происходят при запуске сервиса. Я добавил атрибут с IOperationBehavior
, но похоже, что все методы здесь имеют место после разрешения контрактов.
Что мне нужно сделать, чтобы увидеть входящий SOAP?