次の方法で共有


呼び出し元のコンテキストにおけるアクティブ化の適用

オブジェクトが独自のコンテキストでアクティブ化されるかどうかを制御できます。 コンポーネント サービス管理ツールを使用して、呼び出し元のコンテキストでコンポーネントのアクティブ化を要求すると、COM+ がコンテキスト内のコンポーネントのインスタンスをアクティブ化するときに、以下の処理が行われます。

  • 可能であれば、オブジェクトは作成者のコンテキストでアクティブ化されます。
  • 独自のコンテキストが必要な場合、オブジェクトのアクティブ化は失敗します。CO_E_ATTEMPT_TO_CREATE_OUTSIDE_CLIENT_CONTEXT が返されます。

オブジェクトが独自のコンテキストを必要とするかどうかは、呼び出し元のコンテキスト プロパティの現在の状態に対する構成によって異なります。 (詳しくは、「COM+ コンテキスト」を参照)。

独自のコンテキストがある場合にオブジェクトの一部の側面が適切に機能しない場合、その細かいレベルでアクティブ化を制御する必要があります。 たとえば、コンポーネントがマーシャリングをサポートしておらず、独自のコンテキストがある場合、コンテキスト間呼び出しがインターセプトされ、軽量のマーシャリングが実行されるため、そのコンポーネントへの呼び出しが失敗します。

呼び出し元のコンテキストでアクティブ化を適用するには

  1. コンポーネント サービス管理ツールの詳細ウィンドウで、アクティブ化プロパティを設定するコンポーネント (選択された COM+ アプリケーションの [コンポーネント] フォルダー内にあります) を右クリックし、[プロパティ] をクリックします。

  2. コンポーネントのプロパティ ダイアログ ボックスで、[アクティブ化] タブをクリックします。

  3. [呼び出し元コンテキストでアクティブにする必要があります] チェックボックスをオンにします。

  4. OK をクリックします。

COM+ Just-In-Time アクティベーションの概念

既定のコンテキストにおけるアクティブ化の適用