問題タブ [wcf-extensions]

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 に答える
342 参照

c# - WCF クライアントの拡張性: IParemeterInspector.AfterCall と例外処理

私の WCF クライアントでは、特定のエンドポイントのすべての操作に対して事前および事後作業を実行できるようにしたいと考えています。

  • の作業では、操作名入力引数を利用したいと考えています。
  • 投稿作業では、操作名元の入力引数出力/戻り値 、または発生した例外を(再び) 利用したいと考えています。

これを考えると、IParameterInspector( とBeforeCallを含む ) は、必要なものをほとんどすべてAfterCall提供してくれます。問題はそれです

  • 例外の場合はAfterCall呼び出されません (こちらを参照)。

この問題を解決するために、例外が発生したときに呼び出されるIClientMessageInspectorので、を追加できます。AfterReceiveReplyこれにより、次のことが可能になります

  • 例外 (フォルト) が発生したかどうかを判断します。
  • 例外に直面して投稿作業を行う

質問:

  • 最終的に呼び出し元にスローされるものを表す例外IClientMessageInspector.AfterReceiveReplyを取得 (または同等のものを作成) する方法はありますか? もしそうなら、呼び出し元が例外を取得しないように例外を処理済みとしてマークする方法はありますか?
  • または、目標を達成するために使用すべき他の拡張メカニズムまたは他のアプローチはありますか?
0 投票する
1 に答える
137 参照

c# - オブジェクトを WCF パイプラインに挿入し、すべての OperationContract 呼び出しの前後に作業を行う

データベースで費やされた合計時間を追跡し、それを 1 回の Service Operation 呼び出しまたはセッション全体にマージする方法を探しています。私は現在 default を使用しているためPerCall InstanceContextMode、サービス メソッドが呼び出されるたびに Service クラスのコンストラクターが呼び出されるので、各サービス メソッドの前後に呼び出される何らかのパイプライン メソッドにフックして、非メソッドを呼び出すようなことを考えていました。空のコンストラクタ。そして、さらに階層に渡すオブジェクトを注入します。

次に、サービス契約の範囲外でそれを参照し、そこに記録できるようにします。

現在のところ、この動作を実装する「最も簡単な」方法は、すべてのサービス メソッドの最後でログ機能を呼び出すことですが、より良い方法があれば、あまりきれいではありません。

IISでWCF Web サービスをホストするときにサービス コンストラクターを明示的に呼び出し、wcf パイプラインにフックしCarlos Figueira MSDN ブログの一部: WCF Extensibilityに従ってみましたが、あまり成功しませんでした。また、一般的なドキュメントを見つけるのに苦労しています。言い換えれば、私は立ち往生しています。

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

c# - MTOM メッセージのタイプは「application/xop+xml」でなければなりません

C# を使用して Java Web サービスを呼び出しています。Fiddler のステータスは 200 です。このため、サービスへの呼び出しは良好です。しかし、.NET の何かが私の MTOM メッセージを気に入りません。何か案は?ここにすべての詳細があります。

次のエラーが表示されます。

スタック トレースには次のように記載されています。

フィドラーからのテキスト応答には、次のように書かれています。

フィドラーからの生の応答は次のように述べています。

App.config ファイル: