none
The message with Action ... ContractFilter mismatch at the EndpointDispatcher.

    Question

  • I get the following error when attempting to execute a new method on an existing service where all other methods work without error.  I don't get a call to my service so no internal error is generated that I can catch, any ideas as to what is causing this?:

     

    {System.ServiceModel.ActionNotSupportedException: The message with Action 'DASvc/IScenarioDataService/ScenarioCloseService' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver.  Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).

    Server stack trace:
       at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)
       at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
       at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
       at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
       at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
       at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

    Exception rethrown at [0]:
       at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
       at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
       at DASvc.IScenarioDataServices.ScenarioCloseService()
       at DASvc.ScenarioDataServicesClient.ScenarioCloseService() in C:\Dev\DASVC\DASvcClient\DASvc.cs:line 4754
       at DASvc.ScenarioDataService.ScenarioCloseService() in C:\Dev\DASVC\DASvcClient\ScenarioDataService.cs:line 2563}

     

    Code for the new method:

    [ServiceContract(Namespace = "DASvc")]

    public interface IScenarioDataService

    {

    [FaultContract(typeof(dasvcErrorFault))] // New Method signature definition

    [OperationContract]

    bool ScenarioCloseService();

    ...}

     

    [OperationBehavior]

    public bool ScenarioCloseService()

    {

    try

    {

    return true;

    }

    catch (Exception ex)

    {

    string userName = Thread.CurrentPrincipal.Identity.Name;

    dasvcErrorFault fe = errHandlerObj.HandleError(ex, "CloseService User: " + userName, loggerObj, LoggingUtility.callEventID.EconomicScenarioDataService);

    throw new FaultException<dasvcErrorFault>(fe);

    }

    }

    Thursday, December 06, 2007 3:15 PM

All replies

  • It looks a lot like you are trying to call an old instance of your service with a proxy created for a new instance of your service.

     

    If you are 100% sure that the service you are calling has the new method installed and running, then you should be able to diagnose this further by turning on tracing on the service.

     

    Hope this helps -

    Justin

     

    • Proposed as answer by waltercanta Wednesday, November 03, 2010 8:51 PM
    Tuesday, December 11, 2007 6:16 AM
  •  

    Hi,

     

    I am getting a similar error but the action is shown as an empty string instead. We have a WCF service which is consumed by a client developed using WebMethods. The webmethods client is recieveing the following error.

     

    The second problem I am facing is that, our service is unable to capture any logs for this error even after starting the trace.

     

    Any suggestions?

     

    <s:Envelope

    xmlnsTongue Tied="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><s:Fault><fa

    ultcode

    xmlns:a="http://schemas.microsoft.com/ws/2005/05/addressing/none">a:Acti

    onNotSupported</faultcode><faultstring xml:lang="en-GB">The message with Action '' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver. Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).</faultstring></s:Fault></s:Body></s:Envelope>

     

     

    Cheers,

    Vivek

    Tuesday, March 18, 2008 4:26 PM
  • Could you enable tracing so that there is more information to diagnose the problem?

    Before doing that,  you probably should doubel check to make sure the client proxy is in sync with the service.

     

    Tuesday, March 18, 2008 5:35 PM
  • Thanks. The problem is solved now after enabling the service level trace. The client message had a problem with the xml namespace.

    Thanks very much indeed.

     

    V

    Wednesday, April 30, 2008 3:44 PM
  • i have the same problem here, i need to where can i enable the service level trace as u mentioned, so that i fix my problem

     

    thnx

     

    Sunday, June 15, 2008 1:17 AM
  • Can you check the message client is sending specifically action? You could use iclientmessageinspector to inspect the message client is sending.

     

    Saturday, June 28, 2008 5:37 PM
  • Thanks. The problem is solved now after enabling the service level trace. The client message had a problem with the xml namespace.

    Thanks very much indeed.

     

    V


    I'm having the same problem.
    How did you see the xml namespaces?
    And where did you change them?

    What is weird it works if I turn transfermode to Buffered.

    Tuoski's Blog - http://www.tuoski.net/
    Tuesday, May 05, 2009 8:37 AM
  • hi
    I too faced a similar error today, In my case what happened was the ServiceBehavior class was implementing 2 interfaces, so one of them was hiding the other.
    Simple check , is using Vs2008 IDE , do a Add service reference to the webservice, after that expand the service it will list the implemented Interfaces, then click of the Interfaces individually on the right hand side of the "Add Service Reference" dialog see the operations listed, make sure you have all the operations in the interface (ServiceContract)

    Thanks
    Sundara Prabu
    Y2KPRABU, MCTS,MCPD INDIA
    • Proposed as answer by Y2KPRABU Monday, February 08, 2010 7:07 AM
    Monday, February 08, 2010 7:06 AM
  • Hello~

     

    If any clients is existed, you need to close all clients.

    Rebuild all and restart clients after updating service reference.

    Thursday, April 22, 2010 7:12 AM
  • How do you enable the service level trace?

    Saturday, February 18, 2012 2:56 PM
  • I also want to know how can I do that! "How do you enable the service level trace?".

    Anyone can say that to us?

    Thanks!

    Thursday, March 08, 2012 12:49 PM
  • I also want to know how can I do that! "How do you enable the service level trace?".

    Anyone can say that to us?

    Thanks!

    http://blogs.msdn.com/b/madhuponduru/archive/2006/05/18/601458.aspx

    mole on left eye

    Wednesday, May 09, 2012 5:22 AM
  • I changed the namespace of the client to the same as the server ,but the problem remains
    Finally I just click the wsdl file and It shows the different from what I think it should be , and at last I found my EndPointAddress just reference the wrong svc file , after I corrected it , the problem was fixed   
    Monday, December 17, 2012 2:27 PM
  • Try rebooting the server to resolve this issue, we have resolve the same. Have tried many things but did not worked, the code uploaded was working fine on other system.

    Thanks

    Dinesh


    Thursday, January 17, 2013 4:42 AM