問題タブ [idispatchmessageinspector]
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.
wcf - WCF でカスタム SOAP ヘッダーの値を取得する方法
カスタム SOAP ヘッダーを作成し、IClientMessageInspector を介してメッセージに追加しました
IDispatchMessageInspector もあり、リストで正しいヘッダーを見つけることができます。ただし、値はありません。メッセージ文字列が正しいため、値がネットワークを正しく通過したことがわかります
しかし、この値を取得するためのプロパティはないようです。MessageHeaderInfo クラスには Actor などがありますが、他に役立つものは何もありません。
クライアント側でヘッダーと型なしヘッダーを変換する必要がありましたが、サーバー上で同等の操作はありますか?
次のものが見つかりました。これは機能するはずです。
適切なインデックスを手動で見つけて 2 行目を呼び出すと、期待どおりに動作します。ただし、ウォッチ ウィンドウで名前と名前空間の正しい値であることを確認したにもかかわらず、FindHeader はインデックスとして -1 を返します。
wcf - WCF Message Inspector 内で呼び出された操作名を取得する方法
私はWCFでメッセージインスペクターをやっています:
メソッドを実装します:
呼び出されたサービスの名前を次のように取得できます。
しかし、呼び出された操作の名前を取得するにはどうすればよいでしょうか?
.net - WCF サービス (サーバー側) で IDispatchMessageInspector を実装するために使用されるクラスのプロパティにアクセスする方法は?
WCF IClientMessageInspector を使用して、ヘッダー内の情報を WCF サービス (wsHTTP) に送信しています。IDispatchMessageInspector を使用して情報を受け取り、String プロパティを設定しています。
特定のメソッド内で FindHeader を使用しているため、ヘッダーが情報を適切に送信していることを確認しましたが、別のメソッドで FindHeader を実行するのではなく、Token プロパティを持つカスタム クラスにアクセスし、そこからトークンを取得したいだけです。他のすべてのメソッドは、ヘッダー値を取得するために呼び出します。
私の質問は、サーバー側 (OperationContext だと思います) から、ヘッダー情報が入力された Token プロパティを持つこのクラス インスタンスにアクセスするにはどうすればよいですか?
以下は、クラス全体のコードです。
地域「輸入」
エンドリージョン
領域 " IEndpointBehavior "
エンドリージョン
領域「 IClientMessageInspector 」
エンドリージョン
領域「 IDispatchMessageInspector 」
エンドリージョン
クラス終了
c# - IDIspatchMessageInspector
IDispatchMessageInspector.AfterReciveRequest を実装してから、次のように構成します。
しかし、うまくいきません。
アセンブリとローカル参照をチェックインしましたが、 dll が見つからないMicrosoft.WCF.Documentation.InspectorInserter
かHostApplication
、ネットで検索してHostApplication
dll をダウンロードしましたが、何も見つかりませんでした。
どうすればいいですか?
もっと実装する必要があるか、この構成が必要です。
wcf - 実行時のWCFメッセージインスペクタの追加
実行中のサービスのすべてのエンドポイントにメッセージインスペクターを自動的に追加するために使用するカスタムServiceHostを作成しました。IDispatchMessageInspectorとIClientMessageInspectorを実装するMessageInspectorを作成し、それをすべてのエンドポイントに追加することになっている次のコードを見つけました。
私が遭遇した問題は、servicehostが開かれるまでChannelDispatchersコレクションが空であるということです。これは、コンストラクターでこのコードを実行できないことを意味します。Openedイベントのイベントハンドラーを作成し、代わりにそのコードを使用しましたが、エンドポイントを追加しようとすると、次のエラーが発生します。
私はある種のキャッチ22に巻き込まれているようですが、私が求めている機能はWCF内で可能ですか?
ありがとう、
マイク
wcf - サービスレベルでWCFにJSON応答を記録する方法
JSONをクライアントに返すWCFサービスがあります。
これはapp.configです
これは、サービスによって公開されたサンプル操作です
ここで、サービスがクライアントから受信するすべてのリクエストと、クライアントに返送される応答をログに記録したいと思います...この場合はJSOnに罪を犯します。
次のようにカスタムMessageInspectorを作成しました
しかし、これはどの応答もログに記録しないようです。response.Tostring()は「...stream」としか言いません。
上記は、サービスがSOAP XML形式でデータを返す場合に機能しますが、RESTサービスエンドポイントを呼び出すときにブラウザーにダウンロードされた*.jsファイル内のテキストであるJSON応答をログに記録したいと思います。例:http:// localhost:8080 / MyService / me / 2 /
これをどのように達成できるかについてのアイデアはありますか?
wcf - MessageInspector を使用して WCF にオーケストレーションを実装する方法
私はWCFサービスを持っており、MessageInspectorを使用してそれを検査します(IDispatchMessageInspectorを継承)
サービスを実行する前に何かしたいのですが、その結果、サービスを実行したくありません。
クライアントの呼び出しを防ぎたいのですが、クライアントは例外を受け取りません。
手伝って頂けますか
wcf - 自分の状態のMessageInspectorを無効にするにはどうすればよいですか
IDisptachMessageInspectorを使用してWCFサービスをインストールしてから、メッセージのコンテキストを変更するBeforeSendReplyメソッドでサービス操作を呼び出します。しかし、私がサービスを呼び出すと、Inspectorが再び実行されます。インスペクターを実行したくない。そのシーンリオを行う方法を知っていますか?
c# - IDispatchMessageInspector を使用してリクエストのリモート アドレスを取得する
このブログ投稿をフォローしようとしています: http://blogs.msdn.com/b/carlosfigueira/archive/2011/04/19/wcf-extensibility-message-inspectors.aspx
私の目的は、着信リクエストのリモートアドレスを何らかの方法で取得することですが、何らかの理由で、アドレスがどのパラメーターにも表示されないか、null になっています。
私が実装しているインターフェースは次のとおりです。
リモートアドレスを取得しようとしている方法はAfterReceiveRequest
. パラメータrequest
との両方をチェックしましchannel
た。また、あるchannel.RemoteAddress
べき場所にあるようですが、そのプロパティは何らかの理由でnullです。パラメーターも null ですが、request
POST ではなく GET を実行しているためだと思います。
以下は、これをテストするために呼び出すメソッドのシグネチャです。
wcf - 選択したクライアントのみがサービスにアクセスできるように (各メソッドでユーザー ID/パスワークをチェックせずに) WCF サービスにセキュリティを実装する方法は?
IDispatchMessageInspector
以下のようにセキュリティを提供するために、WCF サービスに実装しました。
クライアント側のコード:
}
サーバー側 (サービス):
}
}
このようにして、authkey を知っているクライアントだけが私のサービスにアクセスできます。これは私がやったことです。しかし、セキュリティについてはよくわかりません。何らかの方法で誰かがネットワーク ワイヤに向かう石鹸からこの認証キーをハッキングすると、私のサービスにアクセスできるようになると思います。このシナリオでサービスを保護するにはどうすればよいですか? 選択したクライアントのみが私のサービスにアクセスできるようにするための解決策を教えてください。