none
wcf error: cannot be processed at the receiver, due to an AddressFilter mismatch at the EndpointDispatcher

    Question

  • hi,

    i am getting this message in wcf trace log:

    The message with To 'net.tcp://localhost:8523/DeGeLWCF/DeGeLBase/mex/mex' cannot be processed at the receiver, due to an AddressFilter mismatch at the EndpointDispatcher.  Check that the sender and receiver's EndpointAddresses agree.

    but the server works without any problems.

     

    here is my code:

      [ServiceContract]
      [ServiceKnownType(typeof(GroupInfo[]))]
    
      public interface IDeGeLBase
      {
        [OperationContract]
        string Login(string userName, string pasword);
    
        [OperationContract]
        GroupInfo[] GetGroups(string ticket);
    
        [OperationContract]
        bool OpenSession(GroupInfo groupInf, string ticket);
      }
    app file:
        <behavior name="DeGeLWCF.DeGeLBase">
         <dataContractSerializer maxItemsInObjectGraph="100000000" />
         <serviceMetadata httpGetEnabled="false" httpsGetEnabled="false" />
         <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
        <behavior name="DeGeLWCF.GLDocWCFBehavior">
         <dataContractSerializer maxItemsInObjectGraph="100000000" />
         <serviceMetadata httpGetEnabled="false" httpsGetEnabled="false" />
         <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
    
    
    
    
    
       <service behaviorConfiguration="DeGeLWCF.DeGeLBase" name="DeGeLWCF.DeGeLBase">
        <clear />
        <endpoint address="net.tcp://localhost:8523/DeGeLWCFServ/DeGeLBase"
         binding="netTcpBinding" name="NetTcpBindingDeGeLBase" contract="DeGeLWCF.IDeGeLBase"
         listenUriMode="Explicit" />
        <endpoint address="net.tcp://localhost:8523/DeGeLWCF/DeGeLBase/mex"
         binding="mexTcpBinding" name="MexTcpBindingDeGeLBase" contract="IMetadataExchange"
         listenUriMode="Explicit" />
        <endpoint address="http://localhost:8989/DeGeLWCF/DeGeLBase"
         binding="basicHttpBinding" bindingConfiguration="" name="BasicHttpDeGeLBase"
         contract="DeGeLWCF.IDeGeLBase" />
        <endpoint address="http://localhost:8989/DeGeLWCF/DeGeLBase/mex"
         binding="mexHttpBinding" bindingConfiguration="" name="MexBasicHttpDeGeLBase"
         contract="IMetadataExchange" />
       </service>
       <service behaviorConfiguration="DeGeLWCF.GLDocWCFBehavior" name="DeGeLWCF.GLDocWCF">
        <endpoint address="net.tcp://localhost:8524/DeGeLWCF/GLDocWCF"
         binding="netTcpBinding" name="NetTcpBindingGLDocWCF" contract="DeGeLWCF.IGLDocWCF"
         listenUriMode="Explicit" />
        <endpoint address="net.tcp://localhost:8524/DeGeLWCF/GLDocWCF/mex"
         binding="mexTcpBinding" name="MexTcpBindingGLDocWCF" contract="IMetadataExchange"
         listenUriMode="Explicit" />
        <endpoint address="http://localhost:8980/DeGeLWCF/GLDocWCF" binding="basicHttpBinding"
         bindingConfiguration="" name="BasicHttpGLDocWCF" contract="DeGeLWCF.IGLDocWCF" />
        <endpoint address="http://localhost:8980/DeGeLWCF/GLDocWCF/mex"
         binding="mexHttpBinding" bindingConfiguration="" name="MexBasicHttpGLDocWCF"
         contract="IMetadataExchange" />
       </service>
    thanks for the help

    Saturday, June 26, 2010 11:05 AM

Answers

  • Hello, 

    yes, i think that we have work on the same approach.

    until now i did not understand one thing, if i use the WCF test client all the methods in DeGeLBase service works fine (HTTP and .netTCP). for example: i have login function that works on net.tcp. when i add the user name and password i get correct  anwer.

     

    a lot of thanks

    Sunday, June 27, 2010 4:48 AM

All replies

  • Hello,

    why is mex part of the endpoint address mentioned two times in the exception (.../mex/mex)? How do you call the Mex Tcp endpoint? You have defined endpoint with only one mex part.

    Best regards,
    Ladislav

    Saturday, June 26, 2010 12:34 PM
  • Hello,

    why is mex part of the endpoint address mentioned two times in the exception (.../mex/mex)? How do you call the Mex Tcp endpoint? You have defined endpoint with only one mex part.

    Best regards,
    Ladislav

    hi,

    the double mex is the result of the next line: endpoint address="net.tcp://localhost:8523/DeGeLWCF/DeGeLBase/mex"

    if i will change the endpoint address to: net.tcp://localhost:8523/DeGeLWCF/DeGeLBase i will get only one mex.

     

    but this is not the solution for my problem. i am getting the same message :

    The message with To 'net.tcp://localhost:8523/DeGeLWCF/mexDeGeLBase/mex' cannot be processed at the receiver, due to an AddressFilter mismatch at the EndpointDispatcher.  Check that the sender and receiver's EndpointAddresses agree.


    Saturday, June 26, 2010 12:56 PM
  • Hello,

    I have checked it on my test service and I get exactly the same error you have described. My approach was:

    I added service reference from Visual Studio and the exception was thrown on the service but the error didn't appear in the Visual Studio. I found it in Service Trace Viewer. The reason is add service reference's implementation. When I type the address to the box and press go, it generates two SOAP requests. One with typed address and one with added /mex. Visual studio catches the error from the unsuccessful call and proceeds with the successful one. It looks like feature implemented in Visual Studio because svcutil behaves correctly.

    Is it same approach you did or did you receive the exception in different way?

    Best regards,
    Ladislav 

    Saturday, June 26, 2010 8:27 PM
  • Hello, 

    yes, i think that we have work on the same approach.

    until now i did not understand one thing, if i use the WCF test client all the methods in DeGeLBase service works fine (HTTP and .netTCP). for example: i have login function that works on net.tcp. when i add the user name and password i get correct  anwer.

     

    a lot of thanks

    Sunday, June 27, 2010 4:48 AM