HOW TO:建置用戶端應用程式
本主題專門說明一項為了在現有應用程式中提供回溯相容性而保留的舊有技術,不建議用於新的開發工作。分散式應用程式應使用 Windows Communication Foundation (WCF) 進行開發。
若要建置 HOW TO:建置可遠端處理的型別中所定義,且由 HOW TO:建置裝載應用程式中方法建立之應用程式所裝載的遠端型別用戶端,您的應用程式必須自行註冊為該遠端物件的用戶端,然後叫用該物件,如同該物件位於用戶端的應用程式定義域一樣。.NET 遠端系統會攔截您的用戶端呼叫,然後將這些呼叫轉送到遠端物件上,並將結果傳回給您的用戶端。下列程序將說明如何建置基本的遠端用戶端。
注意: |
---|
如需如何建置並執行這個範例的完整指示,請參閱 HOW TO:編譯並執行基本遠端應用程式。 |
若要建置基本遠端用戶端
延續 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。
注意: 儘管先前的組態檔中只有幾項設定,使用 .NET 遠端處理所發生的問題,大部分是因為這些設定當中有些設定不正確,或是不符合用戶端應用程式的組態設定。您很容易就會輸入錯誤名稱、忘記連接埠,或是忽略某個屬性。如果您的遠端處理應用程式有任何問題,請先檢查您的組態設定。 使用您選擇的語言來建立新的來源檔。使用主要方法來呼叫 RemotingConfiguration.Configure 並傳入用戶端組態檔 (
client.exe.config
) 的名稱。接下來,產生RemotableType
的執行個體並呼叫其SayHello
方法。將用戶端應用程式以Client.cs
或Client.vb
形式儲存在remoting\client
目錄中。注意: 用戶端應用程式不應該與 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()); }
將 RemotableType.dll 組件從
remoting\Type
複製到remoting\client
。注意: 此時常有的疑問是:「如果我將組件複製到用戶端,該如何得知已呼叫遠端物件?」。這也就是為何我們將對 Console.WriteLine
的呼叫加入RemotableType.SayHello()
方法的原因。如果呼叫了遠端物件,則接聽程式 (Listener) 處理序就會產生WriteLine
;如果沒有呼叫的話,用戶端處理序就會產生WriteLine
。在
remoting\client
目錄中輸入下列命令來編譯用戶端應用程式:vbc /r:RemotableType.dll Client.vb
csc /noconfig /r:RemotableType.dll Client.cs
開啟兩個命令提示字元。在其中一個命令字元下,進入 remoting\listener 目錄並執行 listener.exe。在另一個命令字元下,進入 remoting\client 目錄並執行 client.exe。用戶端的命令提示字元看起來應該像這樣:
C:\tmp\Remoting\client>client Hello, world
接聽程式的命令提示字元看起來應該像這樣:
C:\tmp\Remoting\listener>listener Listening for requests. Press Enter to exit... RemotableType.SayHello() was called!
您可以從接聽程式的輸入得知它已收到對
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());
}
}
另請參閱
工作
參考
概念
其他資源
建置日期:2010-02-13