title: The message with Action '' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher
body: <p>I try to solve this since few days ... I get this error only when call soap service, in rest all ok.</p>
  
  <p>My config in client (in service is the same, only not have client section)</p>
  
  <pre><code>&lt;system.serviceModel&gt;
  &lt;client&gt;
    &lt;endpoint address="soap" binding="customHttpBinding" bindingConfiguration="MyCustomHttpBinding" name="Soap" contract="ServiceModel.IService" /&gt;
  &lt;/client&gt;
  &lt;serviceHostingEnvironment multipleSiteBindingsEnabled="true"&gt;
    &lt;serviceActivations&gt;
      &lt;add relativeAddress="Service.svc" service="ServiceModel.Service" /&gt;
    &lt;/serviceActivations&gt;
  &lt;/serviceHostingEnvironment&gt;
  &lt;bindings&gt;
    &lt;customBinding&gt;
      &lt;binding name="MyCustomHttpBinding"&gt;
        &lt;textMessageEncoding messageVersion="Soap12" /&gt;
        &lt;context protectionLevel ="None"/&gt;
        &lt;httpTransport transferMode ="Buffered" /&gt;
      &lt;/binding&gt;
    &lt;/customBinding&gt;
    &lt;webHttpBinding&gt;
      &lt;binding name="webHttpBindingSettings" closeTimeout="00:01:00" transferMode="Streamed" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" maxBufferPoolSize="524288" maxReceivedMessageSize="654321"&gt;
        &lt;readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /&gt;
        &lt;security mode="None"&gt;
          &lt;transport clientCredentialType="None" /&gt;
        &lt;/security&gt;
      &lt;/binding&gt;
    &lt;/webHttpBinding&gt;
  &lt;/bindings&gt;
  &lt;services&gt;
    &lt;service name="ServiceModel.Service" behaviorConfiguration="MetadataBehavior"&gt;
      &lt;endpoint address="soap" binding="customBinding" bindingConfiguration="MyCustomHttpBinding" name="Soap" contract="ServiceModel.IService" /&gt;
      &lt;endpoint address="rest" behaviorConfiguration="jsonBehavior" binding="webHttpBinding" bindingConfiguration="webHttpBindingSettings" name="Json" contract="ServiceModel.IService" /&gt;
      &lt;endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /&gt;
      &lt;host&gt;
        &lt;baseAddresses&gt;
          &lt;add baseAddress="http://dev.add.com/Service.svc/" /&gt;
        &lt;/baseAddresses&gt;
      &lt;/host&gt;
    &lt;/service&gt;
  &lt;/services&gt;
  &lt;behaviors&gt;
    &lt;serviceBehaviors&gt;
      &lt;behavior name="MetadataBehavior"&gt;
        &lt;serviceDebug includeExceptionDetailInFaults="true"  /&gt;
        &lt;serviceMetadata httpGetEnabled="true" /&gt;
      &lt;/behavior&gt;
    &lt;/serviceBehaviors&gt;
    &lt;endpointBehaviors&gt;
      &lt;behavior name="jsonBehavior"&gt;
        &lt;webHttp automaticFormatSelectionEnabled="true" helpEnabled="true" /&gt;
      &lt;/behavior&gt;
    &lt;/endpointBehaviors&gt;
  &lt;/behaviors&gt;
  </code></pre>
  
  <p></p>
  
  <p>my service</p>
  
  <pre><code>    [ServiceContract(Namespace = "ServiceModel")]
  public interface IService
  {
      [OperationContract]
      [WebInvoke()]
      GetInfoResponse GetRestData(GetInfoRequest message);
  
      [OperationContract]
      [WebInvoke()]
      GetInfoResponse GetSoapData(GetInfoRequest message);
  
      [OperationContract]
      [WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped)]
      string Save(Stream message);
  }
  </code></pre>
  
  <p>call service</p>
  
  <pre><code>            GetInfoRequest message = CheckedFields;
          string soap = @"&lt;?xml version=""1.0"" encoding=""utf-8""?&gt;
                  &lt;soap12:Envelope xmlns:soap12=""http://www.w3.org/2003/05/soap-envelope""&gt;
                    &lt;soap12:Header&gt;
                      &lt;Action soap12:mustUnderstand=""1"" xmlns=""http://www.w3.org/2005/08/addressing""&gt;ServiceModel/IService/GetSoapData&lt;/Action&gt;
                    &lt;/soap12:Header&gt;
                  &lt;soap12:Body&gt;
              &lt;GetInfoRequest  xmlns=""ServiceModel""&gt;
                  &lt;Data xmlns:d4p1=""http://schemas.microsoft.com/2003/10/Serialization/Arrays"" xmlns:i=""http://www.w3.org/2001/XMLSchema-instance""/&gt;
              &lt;/GetInfoRequest&gt;
              &lt;/soap12:Body&gt;
              &lt;/soap12:Envelope&gt;";
          XmlSerializer serializer = new XmlSerializer(typeof(GetInfoRequest));
          HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://dev.add.renault.com/Service.svc/soap");
          MemoryStream stream1 = new MemoryStream();
          serializer.Serialize(stream1, message);
          stream1.Position = 0;
          StreamReader sr = new StreamReader(stream1);
          string t = sr.ReadToEnd();
          t = t.Remove(0, 22).Trim();
          t = string.Format(soap, t);
          ASCIIEncoding encoding = new ASCIIEncoding();
          request.Timeout = 99999999;
          request.ContentLength = t.Length;
          request.Method = "POST";
          request.ContentType = "application/soap+xml; charset=utf-8";
          request.Accept = "application/soap+xml; charset=utf-8";
  
          using (Stream stm = request.GetRequestStream())
          {
              using (StreamWriter stmw = new StreamWriter(stm))
              {
                  stmw.Write(t);
              }
          }
  
          var response = (HttpWebResponse)request.GetResponse();
          var abc = new StreamReader(response.GetResponseStream());
  </code></pre>
  
  <p>Stack Trace</p>
  
  <pre><code>System.ServiceModel.Dispatcher.ErrorBehavior.ThrowAndCatch(Exception e, Message message)
  System.ServiceModel.Dispatcher.ChannelHandler.ReplyFailure(RequestContext request, Message fault, String action, String reason, FaultCode code)
  System.ServiceModel.Dispatcher.ChannelHandler.ReplyFailure(RequestContext request, FaultCode code, String reason, String action)
  System.ServiceModel.Dispatcher.ChannelHandler.ReplyContractFilterDidNotMatch(RequestContext request)
  System.ServiceModel.Dispatcher.ChannelHandler.EnsureChannelAndEndpoint(RequestContext request)
  System.ServiceModel.Dispatcher.ChannelHandler.TryRetrievingInstanceContext(RequestContext request)
  System.ServiceModel.Dispatcher.ChannelHandler.HandleRequest(RequestContext request, OperationContext currentOperationContext)
  System.ServiceModel.Dispatcher.ChannelHandler.AsyncMessagePump(IAsyncResult result)
  System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
  System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
  System.Runtime.InputQueue`1.AsyncQueueReader.Set(Item item)
  System.Runtime.InputQueue`1.EnqueueAndDispatch(Item item, Boolean canDispatchOnThisThread)
  System.Runtime.InputQueue`1.EnqueueAndDispatch(T item, Action dequeuedCallback, Boolean canDispatchOnThisThread)
  System.ServiceModel.Channels.SingletonChannelAcceptor`3.Enqueue(QueueItemType item, Action dequeuedCallback, Boolean canDispatchOnThisThread)
  System.ServiceModel.Channels.HttpChannelListener.HttpContextReceived(HttpRequestContext context, Action callback)
  System.ServiceModel.Activation.HostedHttpTransportManager.HttpContextReceived(HostedHttpRequestAsyncResult result)
  System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest()
  System.ServiceModel.Activation.HostedHttpRequestAsyncResult.BeginRequest()
  System.ServiceModel.Activation.HostedHttpRequestAsyncResult.OnBeginRequest(Object state)
  System.Runtime.IOThreadScheduler.ScheduledOverlapped.IOCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
  System.Runtime.Fx.IOCompletionThunk.UnhandledExceptionFrame(UInt32 error, UInt32 bytesRead, NativeOverlapped* nativeOverlapped)
  System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)
  </code></pre>