共用方式為


HOW TO:建置用戶端應用程式

若要建置 HOW TO:建置可遠端處理的型別中所定義,且由 HOW TO:建置裝載應用程式中方法建立之應用程式所裝載的遠端型別用戶端,您的應用程式必須自行註冊為該遠端物件的用戶端,然後叫用該物件,如同該物件位於用戶端的應用程式定義域一樣。.NET 遠端系統會攔截您的用戶端呼叫,然後將這些呼叫轉送到遠端物件上,並將結果傳回給您的用戶端。下列程序將說明如何建置基本的遠端用戶端。

Note注意:

如需如何建置並執行這個範例的完整指示,請參閱 HOW TO:編譯並執行基本遠端應用程式

若要建置基本遠端用戶端

  1. 延續 HOW TO:建置裝載應用程式一文所示作法,在 remoting 底下建立一個稱為 client 的新目錄。如下列程式碼所示,建立用戶端應用程式組態檔,並將此檔案儲存到 remoting\client 目錄中。檔名應該遵循 app-name.exe.config 的格式。在此種情況下,稱為 client.exe.config。下列組態檔會告訴遠端系統,可以在 RemotableType 組件中找到 RemotableType 遠端物件的型別資訊,而且物件位於 https://localhost:8989/RemotableType.rem。

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

    如需此組態檔中的 URL 屬性詳細資訊,請參閱啟動過程 URL。如果您要透過網路執行這個應用程式,您必須以遠端電腦的名稱取代用戶端組態中的 localhost。

    Note注意:

    儘管先前的組態檔中只有幾項設定,使用 .NET 遠端處理所發生的問題,大部分是因為這些設定當中有些設定不正確,或是不符合用戶端應用程式的組態設定。您很容易就會輸入錯誤名稱、忘記連接埠,或是忽略某個屬性。如果您的遠端處理應用程式有任何問題,請先檢查您的組態設定。

  2. 使用您選擇的語言來建立新的來源檔。使用主要方法來呼叫 RemotingConfiguration.Configure 並傳入用戶端組態檔 (client.exe.config) 的名稱。接下來,產生 RemotableType 的執行個體並呼叫其 SayHello 方法。將用戶端應用程式以 Client.cs Client.vb 形式儲存在 remoting\client 目錄中。

    Note注意:

    用戶端應用程式不應該與 Listener.exe 應用程式儲存在同一個目錄中。如果剛好位於同一個目錄的話,則您無法確定是否收到與使用遠端參考,因為當這兩種應用程式位於相同目錄時,就會產生組件與型別解析。

       Public Shared Sub Main()
          RemotingConfiguration.Configure("Client.exe.config")
          Dim remoteObject As New RemotableType()
          Console.WriteLine(remoteObject.SayHello())
       End Sub 'Main
    
       public static void Main(){
          RemotingConfiguration.Configure("Client.exe.config");
          RemotableType remoteObject = new RemotableType();
          Console.WriteLine(remoteObject.SayHello());
       }
    
  3. 將 RemotableType.dll 組件從 remoting\Type 複製到 remoting\client

    Note注意:

    此時常有的疑問是:「如果我將組件複製到用戶端,該如何得知已呼叫遠端物件?」。這也就是為何我們將對 Console.WriteLine 的呼叫加入 RemotableType.SayHello() 方法的原因。如果呼叫了遠端物件,則接聽程式 (Listener) 處理序就會產生 WriteLine;如果沒有呼叫的話,用戶端處理序就會產生 WriteLine

  4. remoting\client 目錄中輸入下列命令來編譯用戶端應用程式:

    vbc /r:RemotableType.dll Client.vb
    csc /noconfig /r:RemotableType.dll Client.cs
    
  5. 開啟兩個命令提示字元。在其中一個命令字元下,進入 remoting\listener 目錄並執行 listener.exe。在另一個命令字元下,進入 remoting\client 目錄並執行 client.exe。用戶端的命令提示字元看起來應該像這樣:

    C:\tmp\Remoting\client>client 
    Hello, world 
    
  6. 接聽程式的命令提示字元看起來應該像這樣:

    C:\tmp\Remoting\listener>listener
    Listening for requests. Press Enter to exit...
    RemotableType.SayHello() was called!
    
  7. 您可以從接聽程式的輸入得知它已收到對 RemotableType.SayHello() 的呼叫。

範例

' 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.SayHello())
   End Sub 'Main
End Class 'Client
// 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.SayHello());
   }
}

請參閱

工作

HOW TO:建置裝載應用程式

參考

遠端設定結構描述

概念

遠端應用程式的組態
伺服器啟動過程

其他資源

建置基本 .NET Framework 遠端處理應用程式

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.