none
WCF Adapter failed transmit.... RRS feed

  • Question

  • Hello,
    I am getting this error in PRODUCTION env..

    I do not get this error in dev or qa. I have 2 biztalk nodes (active-passive) and 1 Db (msgbox)

    Can someple give any pointers what to look for?

    Event Type: Warning
    Event Source: BizTalk Server 2006
    Event Category: (1)
    Event ID: 5743
    Date:  3/3/2009
    Time:  1:59:39 PM
    User:  N/A
    Computer: MSP
    Description:
    The adapter failed to transmit message going to send port "WcfSendPort_ValidationService_WSHttpBinding_IValidationService" with URL "http://prod.ws.com:22624/ValidationService.svc". It will be retransmitted after the retry interval specified for this Send Port. Details:"System.ServiceModel.Security.MessageSecurityException: An unsecured or incorrectly secured fault was received from the other party. See the inner FaultException for the fault code and detail. ---> System.ServiceModel.FaultException: The message could not be processed. This is most likely because the action 'http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT/Cancel' is incorrect or because the message contains an invalid or expired security context token or because there is a mismatch between bindings. The security context token would be invalid if the service aborted the channel due to inactivity. To prevent the service from aborting idle sessions prematurely increase the Receive timeout on the service endpoint's binding.
       --- End of inner exception stack trace ---

    Server stack trace:
       at System.ServiceModel.Security.SecuritySessionClientSettings`1.ClientSecuritySessionChannel.ProcessRequestContext(RequestContext requestContext, TimeSpan timeout, SecurityProtocolCorrelationState correlationState)
       at System.ServiceModel.Security.SecuritySessionClientSettings`1.ClientSecuritySessionChannel.ReceiveInternal(TimeSpan timeout, SecurityProtocolCorrelationState correlationState)
       at System.ServiceModel.Security.SecuritySessionClientSettings`1.SecurityRequestSessionChannel.CloseOutputSession(TimeSpan timeout)
       at System.ServiceModel.Security.SecuritySessionClientSettings`1.ClientSecuritySessionChannel.CloseSession(TimeSpan timeout, Boolean& wasAborted)
       at System.ServiceModel.Security.SecuritySessionClientSettings`1.ClientSecuritySessionChannel.OnClose(TimeSpan timeout)
       at System.ServiceModel.Channels.CommunicationObject.Close(TimeSpan timeout)
       at System.ServiceModel.Channels.ServiceChannel.OnClose(TimeSpan timeout)
       at System.ServiceModel.Channels.CommunicationObject.Close(TimeSpan timeout)
       at System.ServiceModel.Channels.CommunicationObject.Close()

    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 System.ServiceModel.ICommunicationObject.Close()
       at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.RequestCallback(IAsyncResult result)".

    For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

    Tuesday, March 3, 2009 7:09 PM

Answers

  • Usually when you see "there is a mismatch between bindings" you should try to update the port configuration. I have found that sometimes you need to switch over to using the WCF-Custom or WCF-CustomIsolated to get the WCF security configuration to work properly. A good tip with these other adapters is that you can import the configuration file for the WCF service on one of the tabs of the port properties for these adapters (if the config file is available to you). This will ensure that there is not a mismatch between the bindings you have for referencing the service and what the service itself exposes.

    Thanks,
    If this answers your question, please use the "Answer" button to say so | Ben Cline
    Wednesday, March 4, 2009 5:52 AM
    Moderator

All replies

  • Usually when you see "there is a mismatch between bindings" you should try to update the port configuration. I have found that sometimes you need to switch over to using the WCF-Custom or WCF-CustomIsolated to get the WCF security configuration to work properly. A good tip with these other adapters is that you can import the configuration file for the WCF service on one of the tabs of the port properties for these adapters (if the config file is available to you). This will ensure that there is not a mismatch between the bindings you have for referencing the service and what the service itself exposes.

    Thanks,
    If this answers your question, please use the "Answer" button to say so | Ben Cline
    Wednesday, March 4, 2009 5:52 AM
    Moderator
  • Thanks Ben.

    I will see if I can do Custom binding. But the inplementation is very simple. I exposed the Orchestration as WCF. Inside this Orchestration, I am calling another WCF service. This is where this error happens. The send port The .dot net page is calling this WCF (Orchestration). There are request coming in and responses going out. It just happens that one of every 10 to 15 request, I will see this warning and few seconds later there will be another error back to back.

    1) The transport proxy method MoveToNextTransport() failed for adapter WCF-WSHttp: Reason: "Messaging engine has no record of delivering the message to the adapter. This could happen if MoveToNextTransport() is called multiple times for the same message by the adapter or if it is called for a message which was never delivered to the adapter by the messaging engine". Contact the adapter vendor.

    2) The Messaging Engine encountered an error while suspending one or more messages.

    I will research some more. Thanks for your help.

    Wednesday, March 4, 2009 2:16 PM
  • Did you try increasing the Receive timeout on the service endpoint's binding as suggested in the first error? The second error does sound like either a timeout is being reached or perhaps more than one receive port is activating at the same time and the first one that activates finishes and leads the second one that activated to have an empty message or endpoint.

    Also, are you sure only one node of your cluster is operating at once?

    Thanks,
    If this answers your question, please use the "Answer" button to say so | Ben Cline
    Wednesday, March 11, 2009 11:18 AM
    Moderator
  • I dont know if any one found the answer. I was trying to find some solution for similar error (not with Biztalk), but just using WCF.

    I too got the error only in PROD and not in QA or DEV.

    The problem for me was because of the buffer size required for records to be transferred. Probably I also set timeouts etc in config files.

    I realised that the best option for me is to breakdown the data into smaller chunks and transfer as I didnot have the problem of Digital Signature etc and it was an internal application. All sorting was done at DB side and no sorting was required at client side on the records.

    Friday, April 8, 2011 6:55 AM