メタデータの問題
このトピックの対象は、既存のアプリケーションとの下位互換性のために残されているレガシ テクノロジに特定されています。新規の開発には、このトピックを適用しないでください。分散アプリケーションは、現在は Windows Communication Foundation (WCF) を使用して開発する必要があります。
.NET リモート処理インフラストラクチャは、あるアプリケーション ドメイン内のオブジェクトを別のドメイン内のオブジェクトに接続するために、適切なメタデータを必要とします。どのような場合にも、クライアント アプリケーション ドメインは、使用するリモート オブジェクトのメタデータを持つ必要があります。注意すべき重要な問題を次に示します。
サーバー側でアクティブ化されるオブジェクトの場合、型を含むアセンブリ名はクライアントとサーバーの両方で同じであることが必要です。また型名も同じであることが必要です。これは、型の ID が、アセンブリのバージョンや厳密な名前に関する情報を含めた、型とアセンブリ名の組み合わせで決定されるためです。
クライアント側でアクティブ化されるオブジェクトの場合、型を含むアセンブリ名がクライアントとサーバーの両方で同じであることが必要です。また型名も同じであることが必要です。さらに、クライアントにはリモート型の実際の実装が必要です。また、すべてのメンバーにはサーバー実装の対応するメンバーと完全に一致するシグネチャが必要です。
注 : |
---|
クライアント実装には、サーバー実装は必要ありません。クライアントがサーバー実装にアクセスできないようにする場合は、上記の要件をすべて満たすが、NotSupportedException 例外をスローする、スタブとして作成されたメンバーを含む代理ライブラリを構築します。Soapsuds ツール (Soapsuds.exe) は、SOAP シリアル化を使用するクライアントに対してこれを実行します。これは、任意のチャネルを使用し、参照渡しでマーシャリングされる、公開済みのすべての型に対して実行できます。 |