0

Hej, J'utilise le httpBinding/netTcpBinding dans mon service WCF, j'essaye de remplacer un peu de code de remoting .Net avec WCF. C'était mon premier test en traduisant les méthodes de mon .Net remoting à un contrat de service de WCF. J'ai traduit mes méthodes littéralement l'ancien code utilise System.Messaging.Message comme type de retour.Est-il possible de renvoyer System.Messaging.Message dans un contrat de service?

Mon contrat de service:

<OperationContract(Name:="ReceiveWithTimeOut")> 
    <TransactionFlow(TransactionFlowOption.Allowed)> 
    Function Receive(ByVal TimeOut As TimeSpan) As System.Messaging.Message 

Everyting construit, le service monte mais quand je surfe à mon service j'ai obtenu l'erreur suivante:

System.InvalidOperationException: An exception was thrown in a call to a WSDL export extension: System.ServiceModel.Description.DataContractSerializerOperationBehavior contract: http://..../ServiceContracts/2012/V1:IReaderContract ----> System.Runtime.Serialization.InvalidDataContractException: Type 'System.Messaging.MessageQueue' cannot be serialized.

Est-il possible de retourner un système. Messaging.Message?

Merci beaucoup.

Cordialement.

Jonathan

+1

Salut avez-vous regardé: http://msdn.microsoft.com/en-us/library/ms789008.aspx msmq liaison pour WCF. Je ne pense pas que ce soit possible avec les liens nets ou http. – albertjan

+1

Non, il n'y a aucun moyen de renvoyer ce type à partir du service WCF. Ce type est uniquement destiné aux communications MSMQ natives. Vous devez utiliser un type de retour sérialisable valide. –

Répondre

0

J'ai créé un propre DataContract et laisser le client/serveur de créer des messages MSMQ avec les propriétés de cette DataContract.

Questions connexes