2011-07-14 6 views
3

私はMS 70-513試験の準備をしており、自己ペーストレーニングキットの内容CDにはいくつかの練習テストがあります。WCFでサービスオブジェクトをインスタンス化するためのデフォルトの動作は何ですか?

以下は、私が親切に説明することを求めるテストの1つの質問です。正しくマークされた答えはAですが、なぜDが正しいのか理解できません。

質問:

WCFでサービスオブジェクトをインスタンス化のためのデフォルトの動作とは何ですか?

A - 各インスタンスは、1つのユーザー定義サービスオブジェクトに関連付けられています。

B - 各インスタンスは、要求しているアプリケーションの存続期間中のすべての要求を処理します。

C - クライアント要求ごとに新しいインスタンスが作成されます。

D - 新しいクライアントセッションごとに新しいインスタンスが作成されます。

事前にThakns、 ブルーノ

答えて

3

私はmsdnフォーラムからの回答を得ました。私はそれと確信しています。

http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/2e35729f-603a-4a52-a3b7-920c9f3a8100/

答え引用:これはトリッキーなものです

を - 私は、Dが真でない理由は ないすべてのクライアントがセッションを作成することであることを前提としています。たとえば、basicHttpBindingは、セッションをサポートしない です。だから、いつもセッションを持っていないのであれば、Dは常に ではありません。 (あなたがあなた自身の カスタム動作を作成しない限り)ただし、Aは、すべてのInstanceContextオブジェクトが単一 ユーザ定義サービスオブジェクト(ご サービスの種類に応じて作成されたオブジェクト)

0

私はInstanceContextModeがデフォルト(link)によってPerSessionに設定されているのでDは、同様に正しいと思うだろう。

+0

これは私の考えでした。 – Bruno

2

を包むので、それがPerSession

だ常に真であります

http://msdn.microsoft.com/en-us/library/ms733040.aspx

あなたはWCFのデフォルトのインスタンス化の動作を使用する場合は、WCFクライアントオブジェクト間のすべての呼び出しは、同じサービスインスタンスによって処理されます。したがって、アプリケーションレベルでは、セッションはローカルコールの動作と同様にアプリケーションの動作を可能にすると考えることができます。たとえば、ローカルオブジェクトを作成する場合: コンストラクターが呼び出されます。 以降のWCFクライアントオブジェクト参照への呼び出しは、すべて同じオブジェクトインスタンスによって処理されます。 オブジェクト参照が破棄されると、デストラクタが呼び出されます。 セッションは、デフォルトのサービスインスタンスの動作が使用されている限り、クライアントとサービスの間で同様の動作を可能にします。サービス契約でセッションが必要またはサポートされている場合、IsInitiatingプロパティとIsTerminatingプロパティを設定して、1つまたは複数の契約操作をセッションの開始または終了としてマークできます。