1

msmqIntegrationBinding を使用するワークフロー サービスの設定に苦労しています。私が今抱えている問題は、このシリアライゼーション例外が常に発生することです。 MSMQ メッセージの XML 本文の逆シリアル化中に、メッセージを受信できません。サービス コントラクトが適切な [ServiceKnownType] 属性で装飾されているか、MsmqIntegrationBindingElement に TargetSerializationTypes プロパティが設定されていることを確認してください。

私が理解している限りでは、サービス コントラクトとワークフローの両方でジェネリック型MsmqMessage<MyMessageType>を使用しているにもかかわらず、シリアル化ヘルパーはメッセージをシリアル化する型を見つけることができないということです。

MyMessageTypeは、xsd.exe を使用して .xsd から生成されます。

更新: 問題 は解決しましたワークフローで行うのではなく、コントラクト (インターフェイス) で WCF (Action、ServiceKnownType...) のすべての設定を行いました。ワークフローに移動すると、すべてが機能し始めました!!

4

1 に答える 1

1

WCF の初心者として、これには少し困惑しました。[ServiceKnownType]MSDN MSMQ のを調べたときに属性を見逃していました。

[ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]
[ServiceKnownType(typeof(PurchaseOrder))]
public interface IOrderProcessor
{
    [OperationContract(IsOneWay = true, Action = "*")]
    void SubmitPurchaseOrder(MsmqMessage<PurchaseOrder> msg);
}
于 2012-11-20T09:36:41.037 に答える