問題タブ [messagecontract]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3633 参照

c# - データをストリーミングし、処理し、(MessageContracts を使用して) ストリーミングする WCF ストリーミング操作を実装するにはどうすればよいですか?

大きなストリームを受け入れて処理し、そのストリームを返す WCF サービス操作が必要です。

必要なものへの参照として、 Large Data Streaming に関する MSDN の記事を使用しました。私はその記事のアドバイスに従いました。

事前に質問する:

  1. コントラクトで指定したときに、生成されたサービス操作に戻り値の型がない理由を知りたいですか?

  2. それが予期される動作である場合、ストリームを渡して処理されたストリームを返すにはどうすればよいですか?

詳細

入力ストリームと戻りストリームの両方に MetaData を添付する必要があるため、必要に応じてクラスを MessageContract 属性で装飾しました。

これが私の実装の簡単な概要です。

メッセージ コントラクト:

サービス契約:

サービスの実装:

クライアント側:

次に、クライアント側でサービス参照を生成し、以下のようにサービスを呼び出します。

MSDN の記事では、公式の WCF サンプルに存在するものとまったく同じコントラクトを使用しています。

Stream EchoStream(ストリームデータ)

しかし、同等の MessageContract 実装の例はありません。サンプル バージョンは期待どおりの結果をもたらします。

アップデート

  • サービス参照に、予期されるメソッド シグネチャで生成された Task/Asynchronous メソッドがあることに気付きました。おそらくこれは、Stream プロパティで MessageContract を使用し、同様に構造化されたオブジェクトを返す場合、それを非同期で呼び出す必要があることを意味します。どこにも文書化されているのを見たことがありません。メソッドを使用してみます -同期操作が必要なため、機能しませんでした。
  • ChannelFactoryまた、生成されたプロキシ クライアントの代わりに を使用してみました。

    /li>
0 投票する
1 に答える
65 参照

c# - WCF リクエストのフォーマット

レガシ Web サービスを WCF サービスに変換しています。このサービスは現在、フロント エンド アプリケーションによって使用されています。しかし、現時点では、フロント エンドは新しい WCF サービスを使用しないため、代わりに新しいサービスにリクエストを再ルーティングする予定です。ここでの問題は、新しい WCF サービスが古い入力要求を処理でき、まったく同じ形式で応答を返すことができる必要があることです。

wsdlを生成してsoapUIプロジェクトに追加すると。ボディは、メソッド名 (「UserVerification」は操作コントラクト名) のタグ内にラップされています。メッセージ コントラクトを使用せずにこれを処理する方法はありますか (入力パラメーターに従来の型を使用しているため、変更できません)。

現在、次のようになっています。

私はそれがこのようになりたいです

0 投票する
1 に答える
84 参照

wcf - WCF - [MessageHeader] なしで [MessageContract] を使用する

質問は非常に簡単です。[MessageHeader] 属性を使用せず、[MessageBodyMember] のみを使用している場合、[DataContract] の代わりに [MessageContract] 属性を使用する意味はありますか。その場合、[DataMember] で [DataContract] を使用するのは同じでしょうか?

0 投票する
0 に答える
37 参照

c# - WCF の相互運用可能なシリアライザー

次のような簡単な方法で定義されたWCFサービス操作があります

ここで、AddRqst は次のように定義されます

私が見る問題は、WCFがシリアル化する方法とリクエストが期待される方法が、パラメーター名でラップされていることです(これはメモリからのものです)

このファイルのスキーマを配布することはできません。なぜなら、WCF はパラメータの追加ラッパーを追加するのが好きであり、期待しているためです。私がデザインしたように見えるはずです。

私はMessageContractを認識しており、AddRqst (および AddResp) を次のように変更するとラッピングが削除されることをテストしました。

私の質問は次のとおりです。データ契約だけでこれを行う方法はありますか? すべての操作には 1 つのパラメーターがあります。そうでない場合、AddRqst を変更した方法がこれを行うための最良の方法ですか?

0 投票する
1 に答える
117 参照

.net - MessageContract と DataContract を使用した WCF 構造が機能しない

複数の独自のデータ型を持つ WCF Web サービスがあります。この構造は機能しません。WSDL を呼び出すことはできますが、メソッドを呼び出そうとすると例外がスローされます。

http://addressへの HTTP 応答の受信中にエラーが発生しました。これは、サービス エンドポイント バインディングが HTTP プロトコルを使用していないことが原因である可能性があります。これは、HTTP 要求コンテキストがサーバーによって中止されたことが原因である可能性もあります (サービスのシャットダウンが原因である可能性があります)。

この記事WCF Web Service error: "Service endpoint binding not using HTTP protocol"? を読みました。、しかし、解決策が見つかりません。設定されていない DataMember を検索<httpRuntime maxRequestLength..>し、web.config で設定しようとしましたが、何も変わりません。私の構造の何が問題になっていますか?

0 投票する
0 に答える
202 参照

wcf - WCF、Soap -> [MessageBodyMember] の要素名を削除するにはどうすればよいですか

C# で WCF を使用して SOAP サーバーを構築しています。次のようなクライアントからのリクエストがあります。

このリクエストを取得し、エレメントlocalAuthorisationListの間のデータをハードディスク上のファイルに保存する必要があります。私は見える [MessageContract] を作りました:

しかし、WCFTestClient を使用すると、次の Request を取得します。

私の問題は、要素が多すぎることです(localAuthorisationListまたはlocalAuthorisation)。エレメントを1つ消すことはできますか? そしてどうやって?

ご協力ありがとうございました

トム