Fügen Sie eine Kopfzeile ein REST WCF-Anforderung - EnvelopeNone unterstützt das hinzufügen von Kopfzeilen Ausnahme

Ich versuche, fügen Sie einen benutzerdefinierten header mit einem wcf-client-schlagen Sie eine standard -, Rest-Endpunkt. Ich werde versuchen, fügen Sie etwas Art von header, nur erlauben Sie mir, trace-Anfragen von einer Ebene auf die nächste. Hier ist, wie ich versucht habe zu implementieren:

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); }
  }
 }

Ich dann konfigurieren Sie den client erfolgreich, aber wenn diese läuft, bekomme ich die folgende exception:

System.InvalidOperationException: Umschlag-Version 'EnvelopeNone
(http://schemas.microsoft.com/ws/2005/05/envelope/none)' nicht
Unterstützung für das hinzufügen von Kopfzeilen.

Jemand irgendwelche Vorschläge auf, wie legen Sie dieses kleine barium-Mahlzeit?

InformationsquelleAutor | 2009-10-01
Schreibe einen Kommentar