サーバー側でアクティブ化されるオブジェクトまたはクライアント側でアクティブ化されるオブジェクトは、通常、インターネット インフォメーション サービス (IIS: Internet Information Services) で管理するときに Web.config ファイルに登録するか、またはオブジェクトを直接管理するときにアプリケーション構成ファイルに登録します。アプリケーションが管理するすべてのオブジェクトを <service> 要素内に配置します。
サーバー側でアクティブ化される (<wellknown>) オブジェクトを公開する場合は、オブジェクトの分類 (SingleCall オブジェクトまたは Singleton オブジェクト)、オブジェクトのタイプ、およびオブジェクトにアクセスできるエンドポイントを示す必要があります。クライアント側でアクティブ化される (<activated>) オブジェクトを公開する場合、示す必要があるのはオブジェクトの型だけです。ホスト アプリケーション ドメインのサーバー側でアクティブ化されるオブジェクトとクライアント側でアクティブ化されるオブジェクトを登録する方法を次の例に示します。
<configuration>
<system.runtime.remoting>
<application>
<service>
<wellknown
mode = "SingleCall"
type = "myType,myAssembly"
objectUri = "myType.soap"
/>
<activated
type="MyActivatedType, TypeAssembly"
/>
</service>
</application>
</system.runtime.remoting>
</configuration>
<activated> タグの type 属性は、<wellknown> タグに表示されるときのオブジェクトの完全型名とアセンブリ名を示します。
IIS によるサーバー側でアクティブ化される型の設定
インターネット インフォメーション サービス (IIS: Internet Information Services) が提供する利点を利用するために IIS のリモート サービスを管理する場合は、構成ファイルに多少変更を加える必要があります。Web.config ファイルを使用すると、型の要求を自動的に処理するように IIS を設定できます。また、Global.asax ファイルの Application_Start ハンドラを使用し、構成ファイルの名前を渡して RemotingConfiguration.Configure() を使用して、構成ファイルを読み込むこともできます。いずれの場合にも、次の点に注意してください。
- <application> タグの name 属性を使用してアプリケーション名を指定しないでください。リモート処理可能な型を管理するために作成する仮想ディレクトリは、その型のクライアントへのアプリケーション名になります。
- <application> タグ内の <channel> タグの port 属性を使用してポートを指定しないでください。より多くの要求を処理するために IIS が新しいスレッドを作成すると、新しいチャネルが作成されますが、ポートが元のチャネルによって使用されているため、例外がスローされます。この代わりに、Internet Services Manager で使用するポートを指定します。.NET リモート処理サービスは、そのポートのリモート処理可能な型に対するすべての要求を処理します。
参照
構成ファイルを使用したリモート オブジェクトの登録 | 構成 | RemotingConfiguration クラス | .NET リモート処理の概要 | リモート オブジェクトの設定