
TcpChannel/HttpChannel) 連接伺服器。| 模式 | 類別 | 生命週期 | 狀態 | 建構函式 |
|---|---|---|---|---|
| Server-Activated Singleton | WellKnown | 單一實例服務所有呼叫,租約控制壽命 | 有狀態 | 預設無參數 |
| Server-Activated SingleCall | WellKnown | 每次呼叫新建實例,GC 回收 | 無狀態 | 預設無參數 |
| Client-Activated (CAO) | Activated | 每用戶端一實例,自訂租約 | 有狀態 | 可帶參數 |
<configuration>
<system.runtime.remoting>
<application>
<service>
<wellknown mode="Singleton"
type="DbServerLibrary.DbServer, DbServerLibrary"
objectUri="DbServer" />
</service>
<channels>
<channel ref="tcp" port="8888" />
</channels>
</application>
</system.runtime.remoting>
</configuration>
啟動僅需一行:RemotingConfiguration.Configure("DbServer.exe.config");
// 伺服器發布
TcpChannel chan = new TcpChannel(8888);
ChannelServices.RegisterChannel(chan);
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(DbServerLibrary.DbServer), "DbServer", WellKnownObjectMode.Singleton);
// 客戶端取得代理
DbServerLibrary.DbServer dbServer = (DbServerLibrary.DbServer)
Activator.GetObject(typeof(DbServerLibrary.DbServer),
"tcp://219.224.xx.xx:8888/DbServer");
DataSet 天然適合跨界傳遞。SqlClient 對 SQL Server 深度最佳化。DbServerLibrary.dll 部署至各節點。.NET Remoting + ADO.NET 提供高效、可靠的分散式資料存取方案:Remoting 解決跨界傳輸,ADO.NET 解決資料操作與一致性,兩者結合大幅降低分散式系統開發複雜度。