我一直在努力设置一个使用msmqIntegrationBinding的工作流服务。我现在遇到的问题是,我总是得到这个序列化异常“System.Runtime.Serialization.SerializationException::在反序列化消息时遇到了错误。消息无法接收。-->System.ServiceModel.ProtocolException->在反序列化MSMQ消息的XML主体时发生了错误。无法接收该消息。请确保服务契约使用适当的ServiceKnownType属性装饰,或者在MsmqIntegrationBindingElement上设置TargetSerializationTypes属性。”
据我所理解,即使在服务契约和工作流中使用泛型类型MsmqMessage,序列化助手也找不到任何类型来序列化消息。
MyMessageType是由带有xsd.exe的.xsd生成的。
更新:问题解决了我为WCF做了所有的设置(Action,ServiceKnownType.)在契约(接口)上,而不是在工作流中执行。当我把它移到工作流中时,一切都开始工作了!
发布于 2012-11-20 09:36:41
作为一个WCF初学者,这让我有点困惑。在查看MSDN 示例时,我忽略了示例属性。
[ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]
[ServiceKnownType(typeof(PurchaseOrder))]
public interface IOrderProcessor
{
[OperationContract(IsOneWay = true, Action = "*")]
void SubmitPurchaseOrder(MsmqMessage<PurchaseOrder> msg);
}https://stackoverflow.com/questions/3700747
复制相似问题