問題タブ [wscf]
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.
.net - WSDL からのサービス コントラクトの生成
ServiceContract (OperationContract、DataContract) を生成するために必要な WSDL があります...
ASMX WebServicesでそれを行う方法を見つけましたが、WCF でそれを行う方法が見つからないようです。
走ってみました
しかし、結果のインターフェースは入ってくる呼び出しを逆シリアル化しないので、サービス実装へのすべての要求パラメーターはnull
c# - WCF で WSDL からコードを生成すると、既定値と一致しないメッセージが返される
わかりました、これは私を狂わせています。事前定義された wsdl からサービス実装コードを構築しようとしてきましたが、サービス コントラクト/インターフェイスで一貫してメッセージを返しています。
svcutil.exe と WSCF の Generate Service コード ウィザードを使用してこれを実行しようとしましたが、どちらも同じ結果を返します。
以下は私が使用しているWSDLです。ここにタイプを追加しました。別々の xsd に分割していますが、両方を投稿したくありませんでした。この wsdl (すべての型が埋め込まれている) を使用すると、同じ問題が発生します。
このブログ投稿 ( http://pzf.fremantle.org/2007/05/handlign.html ) を確認しましたが、この問題に関して私が見つけたのはこれだけです。言われたことはすべてやったと思いますが、まだ問題があります。
他の誰かがこれに出くわしましたか? それは非常に腹立たしいです、多分私は明らかな何かを見逃しています. どんな助けでも大歓迎です。
marc_s さん、ありがとうございます。
わかりました、それはうまくいったようです。応答タイプに「s」がなかっただけです。ドー!
現在、サービス コードは正常に生成されているようですが、サービスを参照すると、データ コントラクト/xsd がなく、wsdl に対する操作がありません。
次のようになります。
コードを生成した wsdl のように見えると思いますか?
c# - XmlSchemaForm.Unqualified を使用した .NET の XmlSerializer
次のコードがあるとします。
出力は次のとおりです。
問題は、フォーム プロパティを設定すると、ルート要素と同じ名前空間を持つ属性がある場合でもXmlSchemaForm.Unqualified
、Element
要素の名前空間が に設定されるのはなぜですか?""
XmlTypeAttribute
この種のコード (XmlSchemaForm.Unqualified
部分) はWSCF.blue
ツールによって生成され、名前空間を台無しにしています。
c# - XSDデータコントラクトでジェネリックTypeパラメーターを指定するにはどうすればよいですか?
Webサービスメソッド呼び出しに対して次の要求と応答のデータコントラクトペアがあります
問題は、私が欲しいのは言い方(擬似コード)であるということです
また、通過するタイプに応じて、応答にIListが含まれるようにします。
上記のデータコントラクトXSDでは、Type定義を指定するだけの場合、リクエストオブジェクトにクラスのインスタンスが必要です。
本当に私はそれが欲しいと思います
しかし、XSDでジェネリッククラス/メソッドを指定する方法がわかりません。誰かが私に良い記事を指摘したり、XSDでこれを定義する方法を説明したりできますか?
コード生成にもWSCFblueを使用しています。
c# - 障害メッセージを含む WCF サービスの一方向メソッド
wcf サービスの一方向メソッドを作成したいと考えていました。障害メッセージを返したくない場合は、すべて問題ありません。
wsdl および契約ファイルに wscf blue コード ジェネレーターを使用しています。
wsdl 操作要素には、'Input' および 'Fault' 子要素しかありません。サービスを実行すると、一方向通信で障害メッセージを宣言できないという情報が得られました..解決策の1つは、一方向をfalseに設定することです..私がしたことはうまくいきます。エラーが発生した場合、メッセージが表示されます。
ただし、Web サービス/wsdl 作成ルールを破ったのではないかと思っています... wsdl サービス スキーマ ジェネレーターから、一方向通信 (「true」に設定) が作成され、他のプログラミング言語のジェネレーターはおそらく同じことを行うためです。 ...
それで、私がしたことは正しいですか?ジェネレーターがコードを適切に作成できるように wsdl を変更するにはどうすればよいですか?
理論上、一方向の通信でフォルトを使用できない場合、エラーを返すために応答に追加の構造が必要ですか?
ありがとう!
wcf - xsdで生成されたデータクラスを使用するWCFサービスは、空のオブジェクトを返します
WCFサービスを構築するためのデータクラス(xsd.exeまたはWSCF-blueを使用)を生成するxsdファイルがあります。
次に、生成されたクラスを次のようにWCFサービスの操作に追加します。
クライアントからその操作を呼び出すと、クライアントはMyGeneratedClassOut
null値で満たされた要求を返しますが、サーバー側でそれらを埋めるのは困難です。
誰かがこれを解決する方法を知っていますか?これは、XSDファイルまたはWCF構成の問題でしょうか?
c# - WCF クライアント/サービスで ActionNotSupportedException が発生するのはなぜですか?
私はWCFを学んでいます。具体的には、最初にコントラクトを書く方法を学んでいます.ala wscf.blue
コントラクトの最後の方法で WCF クライアント/サービスを作成できます (Microsoft) コントラクトの最初の方法で WCF クライアント/サービスを作成できます (WSCF)
しかし、最初にコントラクト サービスを作成し、それを WSCF.blue の方法 (コントラクトを共有してクライアントを生成する) の代わりに Microsoft の方法 (サービス リファレンス) で追加しようとすると、機能しません。
ActionNotSupportedException
メッセージとともに をスローしますThe message with Action 'urn:test-com:simple:testMethodIn' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver. Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).
そして、私はそれが何を意味するのか分かりません。
これが私のテスト契約です:
シンプルモデル.xsd
SimpleMessages.xsd
シンプル.wsdl
web.config の system.serviceModel セクションは次のとおりです。
http://localhost:50862/Simple.svc
Everyへのサービス参照を追加すると、 OK が生成されるように見えます。
web.config をインポートすることにより、サービス構成エディターを使用してクライアント app.config でこれを作成します。
そして、テストコードを実行すると:
TestMethod プロキシ内の次の行:
次の例外をスローします
誰でも助けることができますか?
ありがとう、
J.
最初の編集
OK、doc-lit-wrapped wsdl とコード ジェネレーターに問題があることがわかりました。wscf.blue は、メッセージに null 許容型が nillable としてマークされていることを好みません。ラップ モードから外れ、メソッドの実装はラップ解除されません。
ただし、それらを nillable としてマークしないと、クライアント コードはラッピング モードから外れます。これらは nullable 型であり、nillable としてマークされていないためです。
null 許容型が nillable でないとマークされている場合:
サーバ側:
クライアント側:
null 許容型が nillable としてマークされている場合:
サーバ側:
クライアント側:
ただし、それが原因であるかどうかはわかりません。それを修正する方法は言うまでもありません。そうは言っても、 doc-lit-wrapped wsdl では、null 許容型を nillable とマークする必要があることは知っています。