Я пытаюсь добавить пользовательский заголовок к клиенту wcf со стандартной конечной точкой RESTful. Я пытаюсь добавить какой-то заголовок, который позволит мне отслеживать запросы от одного уровня к другому. Вот как я пытался это реализовать:
public class DynatracePurePathHeaderAppender : IClientMessageInspector, IEndpointBehavior
{
object IClientMessageInspector.BeforeSendRequest(ref Message request, IClientChannel channel)
{
var dynaHeader = MessageHeader.CreateHeader("Action", "ns.yellowbook.jeff", "dynatrace",false);
request.Headers.Add(dynaHeader);
return null;
}
void IClientMessageInspector.AfterReceiveReply(ref Message reply, object correlationState)
{
return;
}
public void Validate(ServiceEndpoint endpoint){}
public void AddBindingParameters(ServiceEndpoint endpoint, BindingParameterCollection bindingParameters){}
public void ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher){}
public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
{
clientRuntime.MessageInspectors.Add(this);
}
}
public class DynatracePurePathHeaderAppenderElement : BehaviorExtensionElement
{
protected override object CreateBehavior()
{
return new DynatracePurePathHeaderAppender();
}
public override Type BehaviorType
{
get { return typeof(DynatracePurePathHeaderAppender); }
}
}
Затем я успешно настраиваю клиента, но когда он запускается, я получаю следующее исключение:
System.InvalidOperationException: версия конверта 'EnvelopeNone
(http://schemas.microsoft.com/ws/2005/05/envelope/none)' не
поддержка добавления заголовков сообщений.
У кого-нибудь есть предложения, как вставить эту маленькую бариевую муку?