BizTalk WCF发送端口错误 - 未理解标题'CoordinationContext'

时间:2010-12-02 19:37:15

标签: wcf biztalk wcf-binding biztalk-2009

我有一个WCF-WSHttp发送端口设置,选中了启用事务,发送邮件时收到以下错误:

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. 

如果取消选中“启用事务”框,则会成功处理该邮件。任何人都可以帮我解决这个问题吗?

这是来自服务的web.config的绑定信息(transactionFlow设置为true):

<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>

提前致谢!

2 个答案:

答案 0 :(得分:0)

设置MSDTC可能会出现问题,请参阅http://msdn.microsoft.com/en-us/library/ms752261.aspx

同时检查事件日志中是否存在与MSDTC相关的错误。

答案 1 :(得分:0)

原来问题在于服务本身。尽管使用transactionFlow =“true”正确配置了绑定,但服务合同缺少以下属性以明确允许事务:

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