0

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.

は、システムを返すためにどのような方法があります。メッセージ。メッセージ?

ありがとうございました。

大切にしてください。

ジョナサン

+1

こんにちは、あなたは見て:http://msdn.microsoft.com/en-us/library/ms789008.aspx WCFのためのmsmqバインディング。私はそれがネットまたはhttpバインディングで可能になるとは思わない。 – albertjan

+1

いいえWCFサービスからこの型を返す方法はありません。このタイプは、ネイティブMSMQ通信の場合のみです。有効なシリアライズ可能な戻り値の型を使用する必要があります。 –

答えて

0

私は自分のDataContractを作成し、クライアント/サーバがそののDataContractのプロパティを持つMSMQメッセージを作成してみましょう。

関連する問題