共用方式為


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

本主題專門說明一項為了在現有應用程式中提供回溯相容性而保留的舊有技術,不建議用於新的開發工作。分散式應用程式應使用  Windows Communication Foundation (WCF) 進行開發。

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

y6dc64f2.note(zh-tw,VS.100).gif注意:
如需如何建置並執行這個範例的完整指示,請參閱 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。

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

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

    y6dc64f2.note(zh-tw,VS.100).gif注意:
    用戶端應用程式不應該與 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

    y6dc64f2.note(zh-tw,VS.100).gif注意:
    此時常有的疑問是:「如果我將組件複製到用戶端,該如何得知已呼叫遠端物件?」。這也就是為何我們將對 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 遠端處理應用程式

建置日期:2010-02-13