服務器程式 TestServer 除了具備遠端存取物件能力外,主要工作是取得實際 Access 資料庫檔案路徑,並設定遠端物件的資料庫連接字串。必須加入遠端物件、遠端處理與網路通訊協定等類別庫參考。服務啟動初始化時,需建立遠端物件實例並註冊通訊埠,然後呼叫 RemotingConfiguration.RegisterWellKnownServiceType 方法。MSDN 描述:使用給定參數初始化 WellKnownServiceTypeEntry 新實例,將伺服器端物件 Type 註冊為已知型別,所有知道已註冊已知物件 URI 的客戶端都可取得該物件的 Proxy。URI 即統一資源識別碼。代碼如下:
remotableObject = new RemoteObject.CRemoteAccess();
TcpChannel channel = new TcpChannel(8080);
ChannelServices.RegisterChannel(channel);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemoteObject.CRemoteAccess), "RithiaTestAccessServer", WellKnownObjectMode.Singleton);
選擇要存取的 Access 資料庫檔案後,需呼叫遠端物件的 SetRemoteAccessConnString 方法,該方法保存本次連接期間的連接字串:
ProviderStr = ProviderStrPart + txtAccessMdbFileName.Text + ";Jet OLEDB:Database Password=" + txtAccessPassWord.Text;
remotableObject.SetRemoteAccessConnString(ProviderStr);
在方案中新增 Windows Forms 專案「TestClient」,拖曳元件佈局介面:

客戶端需知伺服器電腦名稱或 IP 及監聽埠號,建立遠端物件實例與 DataTable 接收資料:
string RemoteURL;
Host = txtHost.Text;
Port = txtPort.Text;
RemoteURL = "tcp://" + Host + ":" + Port + "/RithiaTestAccessServer";
try
{
TcpChannel chan = new TcpChannel();
ChannelServices.RegisterChannel(chan);
remoteObject = (RemoteObject.CRemoteAccess)Activator.GetObject(typeof(RemoteObject.CRemoteAccess), RemoteURL);
RemoteDataTable = new DataTable();
button3.Enabled = false;
}
catch (Exception E)
{
MessageBox.Show(E.Message.ToString());
}
finally { }
客戶端根據伺服器監聽通道 (TCP/HTTP) 註冊相應通道與埠號,組合遠端物件 URL:Url = 通道://主機名:埠號/物件Uri,建立實例後如同本地物件般存取。呼叫 GetUserTable 取得查詢結果集:
RemoteDataTable = remoteObject.GetUserTable(txtSQL.Text, "Test");
dataGridView1.DataSource = RemoteDataTable;
儲存結果集只需呼叫 SaveData:
remoteObject.SaveData(RemoteDataTable);
程式在 Visual Studio .NET 2005 與 Windows XP SP2 環境下除錯執行通過。