問題タブ [servicebehavior]
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 - 1 つの特定のエンドポイントの WCF ServiceBehaviorExtension を除外する
サービスの 1 つのカスタム ヘッダーを必要とするカスタム Behavior 拡張機能を除外したいと考えています。出来ますか?RemoveBehaviorExtension 要素について読みましたが、どこで使用するかについては言及されていません。
どんな助けでも大歓迎です!ありがとう!
wcf - ServiceBehaviour の名前空間は Web サービスのバージョン管理にとって重要ですか?
簡単なことですが...ServiceBehaviour
の名前空間は Web サービスのバージョン管理にとって重要ですか? クライアントのサーバーへの前方/後方互換性のために、この名前空間が何らかの形で関与していることを意味しますか?
この特定の名前空間とその用途が何であるか、私は本当に理解していませんでした。これについて私に啓発してくれる人はいますか?
ありがとうございました!
EDIT1:私の調査の後、この名前空間はWSDLの最初の行に表示されます:<wsdl:definitions name="SvcTest" targetNamespace="api.company.com/Services/Tester">
...しかし、これがバージョン管理に影響を与えるかどうかはわかりません...おそらく私は盲目であるか、何かを見落としています。それとも、私が心配しすぎているのかもしれません... なぜここに日付を追加する必要があるのでしょうか ( <wsdl:definitions name="SvcTest" targetNamespace="api.company.com/Services/Tester/2012/01">
) ?
EDIT2 : このリンクを見つけましたが、もう利用できない別の場所を指しています: http://social.msdn.microsoft.com/Forums/en/wcf/thread/66c19783-6675-4bd7-83c1-2140d00a943e。誰でも助けてもらえますか?
wcf - WCF データ コントラクト オブジェクトからメッセージ ヘッダーにデータを取得する方法
サービス内のすべてのデータ コントラクト オブジェクトは BaseMessage から継承しています...
私は、メッセージ インスペクターを使用して、ネットワークを通過する実際の SOAP ペイロードを調べることに慣れています。ただし、私がやりたいことは、何らかの形でメッセージ パイプラインにフックして、次のことを行うことです。
着信メッセージを見て、理想的には文字列メッセージ オブジェクト全体で文字列一致を検索せずに MessageId フィールドを読み取ります (これを行うための高速な方法がない限り)。
MessageId を含むメッセージ内にヘッダーを作成する目的で、メッセージから MessageId を抽出します。繰り返しますが、文字列の一致についてメッセージ全体を検索したくありません。
私は IClientMessageInspector と IDispatchMessageInspector を使用してメッセージを確認することに慣れていますが、パイプラインのこの時点では、実際のオブジェクトにアクセスしてそのフィールドにアクセスすることはできないと思います。
ありがとう
wcf - ServiceBehaviorとEndpointBehaviorの両方を指定する構文?
http://msdn.microsoft.com/en-us/library/ms731303.aspx、およびhttp://msdn.microsoft.com/en-us/library/ms789007.aspxを見ると、ServiceBehaviorを指定する例が示されています。しかし、behaviorConfigurationでもendpointBehaviorを指定する方法はありますか?何かのようなもの
wcf - サービスに操作を追加するための WCF サービス動作
サービスに追加のサービス操作を追加するサービス動作を作成したいと考えています。このようにして、サービス (既存および将来) のいずれかに動作を追加でき、サービスはすべて、この追加のサービス操作を実行できるようになります。(例: ping を実行するか、その他のサービス情報を返します)
目的を達成するためにここで何をすればよいかわかりません。これまでに試みたことは、サービスの説明を変更しようとするサービスの動作を実装することです。エンドポイントを追加してから、新しいコントラクトを指定する必要がありますか?
asp.net-mvc - DispatchMessageInspector のメッセージ ヘッダーから取得した情報を ServiceContract に渡す方法は?
コントローラーからサービスレイヤーにユーザー情報を渡そうとしています。
IClientMessageInspectors
そしてIDispatchMessageInspectors
、最も可能性の高い解決策のようです。
HTTP ユーザー エージェント メッセージ インスペクターの構築 と WCF メッセージ インスペクターの作成を行った後、メッセージ ヘッダーに情報を追加する方法とそれを読み取る方法についてかなりのアイデアが得られました。
私が理解できないのはこれです:
でユーザー情報を取得するにはどうすればよい
IClientMessageInspector
ですか?コントローラの内部で、私は訴えてい
User.Identity.Name
ました。ただし、User オブジェクトはメッセージ インスペクタでは使用できません。この情報をメッセージ インスペクターに含める 1 つの方法は、コンストラクターに渡すことですが、MessageInspector オブジェクトを明示的に作成することはないため、ユーザー情報をコンストラクターに渡すにはどうすればよいでしょうか。編集:最初の質問に対する答えが見つかりました。ユーザー情報は System.Threading.Thread.CurrentPrincipal.Identity.Name で取得できます。まだ第二部にこだわっています。
サービスメソッド内でユーザー情報を利用できるようにする方法は?
ヘッダーを調べて、DispatchMessageInspector のメッセージ ヘッダーからユーザー情報をフェッチすることはできますが、操作コントラクトの 1 つでこの情報を利用できるようにするにはどうすればよいでしょうか?
wcf - エンドポイントごとに異なるサービスの動作
状況
一部の WCF サービスにさまざまな種類のセキュリティを実装しています。ClientCertificate、ユーザー名とパスワード、および匿名。
httpBinding 用と wsHttpBinding 用の 2 つの ServiceBehaviorConfigurations があります。(クレームベースのセキュリティ用のカスタム承認ポリシーがあります) 要件として、サービスごとに異なるエンドポイントが必要です。httpBinding を持つ 3 つのエンドポイントと wsHttpBinding を持つ 1 つのエンドポイント。
1 つのサービスの例:
- basicHttpBinding : 匿名
- basicHttpBinding : UserNameAndPassword
- basicHttpBinding : BasicSsl
- wsHttpBinding : BasicSsl
注: .NET 3.5 に取り組んでいます
問題
パート 1: http サービス構成で 1 回、wsHttp サービス構成で 1 回、同じサービスを 2 回指定することはできません。
パート 2:エンドポイントでサービスの動作を指定することはできません。(スローと例外、エンドポイントの動作が見つかりませんでした...サービスの動作をエンドポイントの動作に設定することはできません)
構成
パート 1 の場合:
サービス動作の構成:
WsHttpBinding エンドポイントで異なるサービス動作を指定するにはどうすればよいでしょうか? または、wsHttpBinding と basicHttpBinding に別の方法で承認ポリシーを適用するにはどうすればよいでしょうか。エンドポイントの動作を使用しますが、エンドポイントの動作で承認ポリシーを指定することはできません
wcf - IISにCustomServiceHostを呼び出すように強制する方法はありますか?
全て、
WCF Webサービスを開発し、IIS7.5でホストしました。サービスの動作は instanceContextMode=InstanceContextMode.PerSession
であるため、IISは最初の要求中にサービスインスタンスを作成し、要求の数と同じ数のインスタンスを作成します。
ただし、静的初期化と同様に、サービスが呼び出される前に、アプリケーションデータの一部を事前にキャッシュする必要があります。
サービスの動作属性を乱したくないが、静的な初期化を実現したい。
CustomServiceFactoryを使用して、サービスファクトリインスタンスを自分で作成する負荷をかけようとしました。ただし、IISは最初の要求時にサービスファクトリも作成するようです。そうでない場合は、この部分についてはよくわかりません。
では、アプリケーションがIISに展開されているとき、またはIISの再起動中に、サービスインスタンス/サービスファクトリインスタンスを作成する方法を知りたいですか?
どんな助けでも大歓迎です!
wcf - WCF REST の ServiceBehavior
WCF サービスの ServiceBehavior の構成に問題があります。
いくつかの背景。基本的に、IIS で実行することになっている REST サービス WCF を開発しています。サービスによってスローされた例外をログに記録し (log4net を使用しています)、例外の種類に応じて HTTP ステータス コードを返す必要があります。サービスの実装には、WCF 関連のものについて最低限の知識を持たせたいので、サービスのどこでも例外を FaultException に変換したくありません。そのため、独自の IErrorHandler をサービス ホストに追加することが最善の方法であることがわかりました。
しかし、私の問題は、何を試しても、Web.config でカスタム ServiceBehavior の構成を正しく取得できないように見えることです。関連するコードは次のとおりです。
ウェブ構成。
エラー拡張要素。
ErrorServiceBehavior。
ExceptionModule が IErrorHandler を実装する場所。
.net - WCFのデフォルトのInstanceContextMode
WCFで、ServiceBehaviourのInstanceContextModeを具体的に指定しない場合、次のデフォルトモードは何ですか?
- PerCall
- PerSession
- 独身
ありがとう。