我有一个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>
提前致谢!
答案 0 :(得分:0)
设置MSDTC可能会出现问题,请参阅http://msdn.microsoft.com/en-us/library/ms752261.aspx
同时检查事件日志中是否存在与MSDTC相关的错误。
答案 1 :(得分:0)
原来问题在于服务本身。尽管使用transactionFlow =“true”正确配置了绑定,但服务合同缺少以下属性以明确允许事务:
[System.ServiceModel.TransactionFlowAttribute(System.ServiceModel.TransactionFlowOption.Allowed)]