サービス コンポーネントとグローバル アセンブリ キャッシュの使用

サービス コンポーネント (マネージ コード COM+ コンポーネント) は、グローバル アセンブリ キャッシュに配置する必要があります。共通言語ランタイムと COM+ サービスがグローバル アセンブリ キャッシュ内にないサービス コンポーネントを処理できるシナリオと、処理できないシナリオとがあります。それぞれのシナリオを次に示します。

  • COM+ サーバー アプリケーションのサービス コンポーネントの場合、コンポーネントを含むアセンブリは、グローバル アセンブリ キャッシュ内にある必要があります。これは、Dllhost.exe がサービス コンポーネントを格納するディレクトリと同じディレクトリで実行されないためです。

  • COM+ ライブラリ アプリケーションのサービス コンポーネントの場合、ランタイムと COM+ サービスは、現在のディレクトリ内を検索することによって、コンポーネントを含むアセンブリへの参照を解決できます。この場合、アセンブリはグローバル アセンブリ キャッシュ内になくてもかまいません。

  • ASP.NET アプリケーションのサービス コンポーネントの場合、状況は異なります。サービス コンポーネントを含むアセンブリをアプリケーション ベースの bin ディレクトリに配置してオンデマンド登録を使用する場合、アセンブリはダウンロード キャッシュにシャドウとしてコピーされます。これは、ASP.NET がランタイムのシャドウ機能を利用するためです。

参照

関連項目

グローバル アセンブリ キャッシュ ツール (Gacutil.exe)
アセンブリ キャッシュ ビューア (Shfusion.dll)

その他の技術情報

サービス コンポーネントの作成
アセンブリとグローバル アセンブリ キャッシュの使用