.NET リモート処理インフラストラクチャは、あるアプリケーション ドメイン内のオブジェクトを別のドメインのオブジェクトに接続するために、適切なメタデータを必要とします。どのような場合にも、クライアント アプリケーション ドメインは、使用するリモート オブジェクトのメタデータを持つ必要があります。この場合に注意すべき重要な問題を次に示します。
サーバー側でアクティブ化されるオブジェクトの場合、型を含むアセンブリ名はクライアントとサーバーの両方で同じである必要があります。また、型名も同一である必要があります。これは、型の ID が、アセンブリのバージョンや厳密な名前に関する情報を含めた、型とアセンブリ名の組み合わせによって特定されるためです。
クライアント側でアクティブ化されるオブジェクトの場合、型を含むアセンブリ名はクライアントとサーバーの両方で同じである必要があります。また、型名も同一である必要があります。さらに、クライアントはそのリモート型の実際の実装を持つ必要があります。また、すべてのメンバはサーバーに実装されている、対応するメンバと正確に同じシグネチャを持つ必要があります。
![]() |
---|
クライアントでの実装は、サーバーでの実装を必要としません。クライアントがサーバーの実装にアクセスできないようにするには、上に示したすべての要件を満たし、スタブとして作成されて NotSupportedException 例外をスローするメンバを含んだ代理ライブラリを構築します。Soapsuds ツール (Soapsuds.exe) は、SOAP シリアル化を使用するクライアントのためにこれを実行します。これは、任意のチャネルを使用し、参照渡しでマーシャリングされる公開されたすべての型に対して実行できます。 |