Hej、 私はWCFサービスでhttpBinding/netTcpBindingを使用していますが、WCFでいくつかの.Netリモーティングコードを置き換えようとしています。これは私の.NetリモーティングのメソッドをWCFサービス契約に翻訳するときの私の最初のテストでした。私のメソッドをそのまま翻訳しました。古いコードは、戻り値の型としてSystem.Messaging.Messageを使用しています。ServiceContractでSystem.Messaging.Messageを返すことは可能ですか?
マイサービス契約:
<OperationContract(Name:="ReceiveWithTimeOut")>
<TransactionFlow(TransactionFlowOption.Allowed)>
Function Receive(ByVal TimeOut As TimeSpan) As System.Messaging.Message
Everytingビルド、サービスが上がるが、私は私のサービスにサーフィンするとき、私は次のエラーを得た:
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.
は、システムを返すためにどのような方法があります。メッセージ。メッセージ?
ありがとうございました。
大切にしてください。
ジョナサン
こんにちは、あなたは見て:http://msdn.microsoft.com/en-us/library/ms789008.aspx WCFのためのmsmqバインディング。私はそれがネットまたはhttpバインディングで可能になるとは思わない。 – albertjan
いいえWCFサービスからこの型を返す方法はありません。このタイプは、ネイティブMSMQ通信の場合のみです。有効なシリアライズ可能な戻り値の型を使用する必要があります。 –