【发布时间】:2012-02-01 15:24:02
【问题描述】:
嘿嘿, 我在我的 WCF 服务中使用 httpBinding / netTcpBinding,我试图用 WCF 替换一些 .Net 远程处理代码。这是我将 .Net 远程处理方法转换为 WCF 服务合同时的第一次测试。我从字面上翻译了我的方法,旧代码使用 System.Messaging.Message 作为返回类型。
我的服务合同:
<OperationContract(Name:="ReceiveWithTimeOut")>
<TransactionFlow(TransactionFlowOption.Allowed)>
Function Receive(ByVal TimeOut As TimeSpan) As System.Messaging.Message
一切都在构建,服务上升,但是当我浏览我的服务时,我收到以下错误:
System.InvalidOperationException:在调用中引发了异常 WSDL 导出扩展: System.ServiceModel.Description.DataContractSerializerOperationBehavior 合约:http://..../ServiceContracts/2012/V1:IReaderContract ----> System.Runtime.Serialization.InvalidDataContractException:类型 'System.Messaging.MessageQueue' 无法序列化。
有什么方法可以返回 System.Messaging.Message 吗?
非常感谢。
亲切的问候。
乔纳森
【问题讨论】:
-
您好,您看过:msdn.microsoft.com/en-us/library/ms789008.aspx WCF 的 msmq 绑定。我认为使用 net 或 http 绑定是不可能的。
-
不,无法从 WCF 服务返回此类型。该类型仅用于本机 MSMQ 通信。您必须使用有效的可序列化返回类型。
标签: wcf serialization msmq datacontractserializer system.messaging