問題タブ [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 に答える
561 参照

wcf - WCF サービス コントラクトとデータ コントラクト

次のコードがあります

上記のシナリオでは、名前空間「http://www.myweb.com/prod/child」を含む GetName メソッド SOAP ヘッダーが必要です。

0 投票する
3 に答える
608 参照

c# - カスタムSOAPメッセージを生成するにはどうすればよいですか

GETリクエストでこのxml応答を返すサイトがあります。

このサービスでの作業にWCFクライアントを使用したいと思います。WCFClienに対するこの応答のメッセージコントラクトを非難する方法

0 投票する
2 に答える
6804 参照

c# - MessageContract を使用すると、起動時に WCF サービスがクラッシュする

この質問で起こっていることと同様に、MessageContract を WCF サービスに追加しようとしています: WCF: メッセージ コントラクトでのストリーミングの使用

ここに私が得る例外があります: System.ServiceModel.Channels.Message 型のパラメーターまたは戻り値の型、または MessageContractAttribute と異なる型の他のパラメーターを持つ型があるため、操作 'UploadFile' をロードできませんでした。System.ServiceModel.Channels.Message または MessageContractAttribute を持つ型を使用する場合、メソッドは他の型のパラメーターを使用してはなりません。

ここに私の契約があります:

app.config で使用しているバインド構成は次のとおりです。

現在、これは私が使用しているバインディングのタイプと関係があるのではないかと考えていますが、完全にはわかりません.

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

.net - XmlSerializer の使用中に派生クラスの基本クラスのプロパティを無視する方法は?

私はこのようなクラスを持っています:

以下のような別のクラスは、上記のクラスを継承します。

ASMX サービスを WCF に移行して、既存の ASMX クライアントとの互換性を維持しています。したがって、のXmlSerializer代わりにを使用する必要がありDataContractSerializerます。

は、 の応答タイプの ようにOrgStructure宣言されます。MessageBodyMemberOperationContract

ASMX クライアントは、XML メッセージ内の を想定していません。Descriptionそこで、派生クラスnewのプロパティを(演算子を使用して)非表示にして、それに適用しようとしました。それでも、このプロパティをシリアル化します。DescriptionXmlIgnoreAttribute

(変数の宣言に注意してください。開発者が、基底クラス自体descriptionに保持するのではなく、派生クラスを再度宣言した理由はわかりません。)protected

XmlSerializer を使用しているときに、派生クラスで基本クラスのプロパティを無視するにはどうすればよいですか? Structure他のサブタイプがそれを必要とするため、基本クラスでそれを無視することはできません。

0 投票する
2 に答える
1232 参照

c# - 関数の引数に変数を渡すのではなく、MessageHeader を使用する場合の WCF

MessageContract と MessageHeader について読んでいて、関数のパラメーターとしてだけではなく、MessageHeader で情報を送信するユースケースを理解しようとしていますか?

0 投票する
4 に答える
4703 参照

c# - WCF応答でネストされた型をシリアル化する方法は?

シナリオ:

ユーザー データを公開する WCF サービスを作成中です。User のインスタンスには、Role というプロパティがあります。このプロパティを省略した場合、サービスは機能します。プロパティを省略しないと、サービスは失敗します。以下は、コードの(非常に)簡略化された表現です。

問題の根本は、Role が User クラスにネスト/埋め込まれていることです (どのように呼びますか...)。この方法ではシリアル化できないようです。

可能な解決策を検索しても、正しい解決策が見つからないようです。コントラクトと User クラスで KnownTypeAttribute を使用して何かを試しましたが、うまくいきませんでした。

質問:

  • User クラスに Role プロパティを含める適切な方法は何ですか?
  • 機能させるには、どの属性をどこに追加する必要がありますか?
  • シリアル化可能にするために実装できるインターフェイスはありますか?

返信ありがとうございます。

更新 #1

@CPX の提案の後、サーバー側で追加のテスト コードを作成しました。

これにより、「XML ドキュメントの生成中にエラーが発生しました」というメッセージを含む InvalidOperationException が発生します。この例外には、InnerException として (再び) InvalidOperationException があり、メッセージ「型 System.Data.Entity.DynamicProxies.User_FAC9CE2C5C9966932C0C37E6677D35437C14CDD08‌ 884AD33C546805E62B7101E は想定されていませんでした。XmlInclude または SoapInclude 属性を使用して、静的に認識されていない型を指定します。

投稿で言及するのを忘れていましたが、User クラスと Role クラスは Entity Framework 4.1 内で使用されます。問題になるとは思いませんでしたが、どうやら問題があるようです。

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

wcf - WCFメッセージ契約のバージョン管理

新しいDatacontractを参照する新しいMessageBodyMemberMessageContractに追加したいと思います。

問題はありますか?

メッセージコントラクトの変更を処理するための最良の方法は何ですか?

新しいMessageBodyMemberの追加が重大な変更であるか、重大でない変更であるかを知る方法は?

0 投票する
2 に答える
351 参照

php - メッセージ コントラクトは、異なる言語間での相互運用性を提供しますか?

WCF サービスについて読んでいます。私は WCF サービスを初めて使用します。WCF が相互運用性を提供することを読みました。相互運用性を提供するコンテキストを知りたいです。.net wcf Web サービスを他の言語 (php など) から使用するコンテキストで、または別の目的で相互運用性を提供しますか? 以下の記事を読みました。

http://blogs.msdn.com/b/drnick/archive/2006/11/27/mixing-message-contract-attributes.aspx

このように、あるメソッドの MessageContract とあるメソッドの DataContract を渡すか返すことにより、wcf Web サービスのすべてのメソッドに OperationContract を提供すると、php または他の言語で何が起こるでしょうか? * DataContract をパラメーターまたは戻り値の型として持つメソッドは、php またはその他の言語で使用できますか? または MessageContract をパラメーターまたは戻り値の型として持つメソッドは、php またはその他の言語で使用できますか? または両方ともphpまたは他の言語で利用可能です*

0 投票する
2 に答える
1867 参照

c# - MessageContract を MessageBodyMember として WCF の他のコントラクトに入れる

WCF で再帰的な MessageContract を使用できますか? 例えば ​​:

いくつかのパラメーターを投稿する必要があります。パラメーターの 1 つはファイル ストリームの配列です。これは私の OperationContract です:

ここに私の MessageContract があります:

あなたの助けが必要..

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

wcf-binding - 同じサービス内でストリーミング転送と非ストリーミング転送の WCF OperationContracts を混在させることはできますか?

単一の ServiceContract 内で定義された一連の操作があり、そのうちの 2 つが、MSDN ドキュメントで概説されているように、Stream 本体を含む MessageContract を直接取得して返すように切り替えられました。これをテストしたところ、問題なく動作しているように見えますが、同じ ServiceContract 内で単純な RPC スタイルのパラメーターを取り、型を返す他の操作を呼び出すと、次の例外が発生します。

何が起こっているのかを理解していれば、MessageContract ベースの操作を容易にするためにサーバーとクライアントの両方で TransferMode を両方向に Streamed に設定したことが問題だと思いますが、これは以前に機能していた非 MessageContract ベースの操作を壊しているに違いありませんストリーミングのものを紹介しました。

次に、おそらく次の2つのオプションしかありません。

  1. このサービス内のすべての操作コントラクトを書き直して、MessageContract ベースになるようにし、おそらく本体のストリームを公開するようにします。この時点で、Stream が必要なのか、それとも単に null に設定したり、メッセージから完全に除外したりできるのかはわかりません。
  2. 転送モードに基づいて、操作コントラクトを個別の ServiceContracts に分割します。

これは正確に聞こえますか?他のオプションはありますか?OperationContract ごとに TransferMode を指定する方法があるかどうかを調べましたが、バインディングの設定であるため、これを行う方法が見つかりません。また、OperationContract ごとに個別のバインディングを指定する方法がわかりません。 .

公開する必要がある一連のサービスを進めるための最良のオプションは何ですか?