Можно ли вернуть System.Messaging.Message в serviceContract? - PullRequest
0 голосов
/ 03 января 2012

Хей, Я использую httpBinding / netTcpBinding в моей службе WCF, я пытаюсь заменить некоторый код удаленного взаимодействия .Net на WCF. Это был мой первый тест при переводе методов моего удаленного взаимодействия .Net в сервисный контракт WCF. Я перевел свои методы буквально, старый код использует System.Messaging.Message в качестве возвращаемого типа.

Мой сервисный контракт:

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

Everyting строит, сервис работает, но когда я захожу на сервис, я получаю следующую ошибку:

System.InvalidOperationException: возникла исключительная ситуация при вызове расширение экспорта WSDL: System.ServiceModel.Description.DataContractSerializerOperationBehavior контракт: http: //..../ServiceContracts/2012/V1: IReaderContract ----> System.Runtime.Serialization.InvalidDataContractException: Type 'System.Messaging.MessageQueue' не может быть сериализован.

Есть ли способ вернуть System.Messaging.Message?

Большое спасибо.

С уважением.

Jonathan

1 Ответ

0 голосов
/ 26 июля 2012

Я создал собственный контракт данных и позволил клиенту / серверу создавать сообщения MSMQ со свойствами этого контракта данных.

...