2017-12-22 22 views
-1

メソッドGetTestValueを使用してWCFサービスを作成しました。また、このサービスをテストするためのテストアプリケーションも作成しました。メソッド名の後ろにasyncを追加したため、WCFデシリアリゼーションエラーが発生しました

接続サービス付きのこのWCFサービスをテストアプリケーションに追加すると、GetTestValueAsyncとしかコールできません。GetTestValueメソッドはありません。どうやらこの追加プロセスは、この非同期のものをメソッド名の後ろに追加します。したがって、このテストアプリケーションでは、GetTestValueAsyncを呼び出すとWCF呼び出しが正常に機能します。私は結果を取り戻す。

それから私は、私もこのWCFサービスを追加Xamarinクロスアプリケーションアプリを作成しました、と私は、このアプリケーションからGetTestValueAsyncを呼び出すときに、私は次のエラーを取得:テストプロジェクトで

Error in deserializing body of request message for operation 'GetTestValue'. OperationFormatter encountered an invalid Message body. Expected to find node type 'Element' with name 'GetTestValue' and namespace ' http://tempuri.org/ '. Found node type 'Element' with name 'GetTestValueAsync' and namespace ' http://tempuri.org/ '

どういうわけか不思議なのそれは正常に動作し、Xamarinのクロスアプリケーションではありません。

  1. 誰かに同じ問題がありましたか?
  2. この接続サービスは常にAsyncのメソッド名になりますか?

Asyncをメソッド名に追加するにはどうすればよいですか?

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

答えて

0

現在、Xamarinアプリケーションは、接続されたサービスプロバイダ(WCF Web Service Reference)が生成するタスクベースの非同期WCFプロキシメソッド(bugzilla.xamarin.com Bug 51959)と互換性がありません。 WCFのプロキシメソッドの古い、互換性のあるスタイルを生成する

一つの方法は、Developer Command Prompt/async/tcv:Version35スイッチとSvcUtil.exeを実行することです。同期プロキシメソッド、Begin/Endスタイルの非同期プログラミングモデル(APM)コールバックプロキシメソッド、およびイベントベースのプロキシメソッドが生成されます。これらのメソッドはすべてXamarinアプリケーションと互換性があります。

は(注:/asyncスイッチを省略した場合、SvcUtil.exeが新しい、互換性のないタスクベースのプロキシメソッドを生成します。)

重複:偶然、私はこの質問のより最近の重複に答えました最初: How to use WCF services in .netstandard with Xamarin.Forms project?

関連する問題