2010-12-02 15 views
1

verstanden Ich habe einen WCF-WSHttp-Port senden einrichten mit Freigabe Transaktionen überprüft, und ich die folgende Fehlermeldung erhalten, wenn eine Nachricht gesendet wird:BizTalk WCF senden Port-Fehler - Der Header ‚CoordinationContext‘ wurde nicht

The header 'CoordinationContext' from the namespace 'http://schemas.xmlsoap.org/ws/2004/10/wscoor' was not understood by the recipient of this message, causing the message to not be processed. This error typically indicates that the sender of this message has enabled a communication protocol that the receiver cannot process. Please ensure that the configuration of the client's binding is consistent with the service's binding. 

Wenn ich das Kontrollkästchen Transaktionen aktivieren deaktivieren, wird die Nachricht erfolgreich verarbeitet. Kann mir jemand helfen, dieses mit Transaktionsunterstützung zu arbeiten?

Hier sind die Bindung Informationen aus dem web.config Dienst (transactionFlow auf true gesetzt ist):

<bindings> 
     <wsHttpBinding> 
     <binding name="serviceBinding" closeTimeout="00:01:00" 
      openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" 
      bypassProxyOnLocal="false" transactionFlow="true" hostNameComparisonMode="StrongWildcard" 
      maxBufferPoolSize="524288" maxReceivedMessageSize="65536" 
      messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" 
      allowCookies="false"> 
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" 
       maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
      <reliableSession ordered="true" inactivityTimeout="00:10:00" 
       enabled="false" /> 
      <security mode="Transport"> 
      <transport clientCredentialType="Ntlm" proxyCredentialType="None" 
       realm="" /> 
      <message clientCredentialType="Windows" negotiateServiceCredential="true" 
       establishSecurityContext="true" /> 
      </security> 
     </binding> 
     </wsHttpBinding> 
    </bindings> 

Vielen Dank im Voraus!

+0

nur einen Gedanken, aber Sie könnten versuchen, diese mit einem nicht-biztalk WCF-Client zuerst Stellen Sie sicher, dass der Transaktionsfluss korrekt eingerichtet ist - http://msdn.microsoft.com/en-us/library/ms733943.aspx – StuartLC

Antwort

0

Es stellte sich heraus, dass das Problem mit dem Dienst selbst war. Obwohl wurden die Bindungen ordnungsgemäß konfiguriert mit transactionFlow = „true“, wurde der Dienstvertrag das folgende Attribut fehlt explizit auf Transaktionen zu:

[System.ServiceModel.TransactionFlowAttribute(System.ServiceModel.TransactionFlowOption.Allowed)]