次の方法で共有


クライアント アプリケーションの構築

リモート処理が可能な型の構築」で定義したリモート型を使って、「ホスト アプリケーションの構築」で作成したアプリケーションにホストされるクライアントを構築するには、アプリケーション自体をリモート オブジェクトのクライアントとして登録し、そのオブジェクトをクライアントのアプリケーション ドメイン内にあるかのように呼び出します。.NET リモート システムはクライアント呼び出しを受け取り、それをリモート オブジェクトに転送し、結果をクライアントに返します。簡単なリモート処理クライアントを構築する方法を次のコード例に示します。

' Client.vb 
Imports System
Imports System.Runtime.Remoting

Public Class Client
   Public Shared Sub Main()
      RemotingConfiguration.Configure("Client.exe.config")
      Dim remoteObject As New RemotableType()
      Console.WriteLine(remoteObject.StringMethod())
   End Sub 'Main
End Class 'Client
[C#]
// Client.cs 
using System;
using System.Runtime.Remoting;

public class Client{

   public static void Main(){
      RemotingConfiguration.Configure("Client.exe.config");
      RemotableType remoteObject = new RemotableType();
      Console.WriteLine(remoteObject.StringMethod());
   }
}

.NET Framework SDK に含まれているコマンド ライン ツールでこのクラスをクライアント (呼び出し元) 実行可能ファイルにコンパイルするには、これを Client.language-extension という名前 (または別の任意の名前) で保存します。language-extension は、コンパイルする言語を示します。ファイルは、「リモート処理が可能な型の構築」トピックで構築した RemotableType.dll のコピーを保存したディレクトリと同じディレクトリに保存します。これは、Listener.exe アプリケーションのディレクトリとは別のディレクトリであることに注意が必要です。同じディレクトリにすると、アセンブリと型の解決の問題が発生するため、リモート参照の受け取りと利用ができないことがあります。そのディレクトリのコマンド プロンプトで次のコマンドを入力します。

[Visual Basic]

vbc /r:RemotableType.dll Client.vb

[C#]

csc /noconfig /r:RemotableType.dll Client.cs

このコマンドでは、ファイル名は次のとおりです。

[Visual Basic]

Client.vb

[C#]

Client.cs

例からもわかるように、Client クラスは RemotableType クラスの構成を読み込むために、Client.exe.config ファイルを見つけられることが必要です。このファイルは Client.exe と同じディレクトリに保存する必要があり、別のディレクトリに保存されている場合は構成ファイルが見つからず、例外がスローされます。このリスナ (ホスト) アプリケーション ドメイン用の構成ファイル Client.exe.config のコードを次に示します。

<configuration>
   <system.runtime.remoting>
      <application>
         <client>
            <wellknown 
               type="RemotableType, RemotableType"
               url="https://localhost:8989/RemotableType.rem"
            />
         </client>
      </application>
   </system.runtime.remoting>
</configuration>

このファイルは、リモート処理システムに対し、RemotableType リモート オブジェクトの型情報は RemotableType アセンブリにあり、このクライアントは https://localhost:8989/RemotableType.rem にある RemotableType オブジェクトの作成と使用を試みることを通知します。構成ファイルの URL 属性の詳細については、「アクティベーション URL」を参照してください。このアプリケーションをネットワーク経由で実行するには、クライアント構成の "localhost" をリモート コンピュータの名前で置き換える必要があります。

メモ   上の構成ファイルには設定が少ししかありませんが、.NET リモート処理で発生するほとんどの問題は、これらの設定が正しくないか、クライアント アプリケーションの構成設定に一致していないことが原因で発生します。名前の入力を間違える、ポートの指定を忘れる、属性を無視するなどの問題がよくあります。リモート処理アプリケーションで問題が発生した場合は、最初に構成設定をチェックしてください。

参照

基本的な .NET リモート処理アプリケーションの構築 | 構成 | サーバー アクティベーション | リモート処理設定スキーマ | <wellknown>