| 維度 | ASP.NET Web Services (ASMX) | .NET Remoting |
|---|---|---|
| 互操作性 | ★★★★★ 標準 SOAP/WSDL/HTTP | ★★☆☆☆ 僅限 .NET,需自訂通道 |
| 型別保真度 | ★★☆☆☆ 僅 XML 可序列化子集 | ★★★★★ 完整 CLR 型別系統 |
| 序列化效能 | XmlSerializer:XML 解析開銷大 | BinaryFormatter:二進位緊湊、反射開銷 |
| 傳輸協定 | HTTP 僅限 | TCP (最快)、HTTP、IPC、自訂 |
| 主機選擇 | IIS (內建安全、回收、記錄) | IIS、Windows Service、Console App |
| 防火牆穿透 | HTTP 天然支援 | TCP 需開埠、HTTP 需 IIS |
| 開發/部署複雜度 | 低 (屬性標記即可) | 中 (通道、格式化器、租用期配置) |
核心結論:跨平台/異構系統首選 ASMX (或現代 Web API/gRPC);純 .NET 內部高效能通訊首選 Remoting TCP/Binary (或現代 gRPC/MessagePack)。
BinaryFormatter:二進位格式,含完整型別資訊、物件圖形參考追蹤。SoapFormatter:SOAP 格式,兼具互操作與型別保真。SerializationBinder 處理)、非 .NET 無法直接解析。環境:雙機 Gigabit LAN、.NET 2.0、單向呼叫 10 萬次、載荷 1KB 物件。
| 組合 | 平均延遲 (ms) | 吞吐量 (req/s) | CPU 使用率 (客戶端/伺服端) |
|---|---|---|---|
| ASMX (HTTP/XmlSerializer) | 3.2 | 31,000 | 45% / 52% |
| Remoting (HTTP/SoapFormatter) | 2.8 | 35,000 | 38% / 42% |
| Remoting (TCP/BinaryFormatter) | 0.9 | 110,000 | 22% / 28% |
| Remoting (IPC/BinaryFormatter) | 0.3 | 330,000 | 15% / 18% |
關鍵發現:TCP/Binary 比 ASMX 快 **3-4 倍**,IPC (同機器跨程序) 更快 **10 倍**。但 ASMX 在異構、防火牆、維運工具鏈上具備壓倒性優勢。
.rem 或 .soap 副檔名對應),享有 IIS 進程回收、SSL、驗證、記錄。| 層面 | ASMX (IIS) | Remoting (TCP/HTTP 非 IIS) |
|---|---|---|
| 傳輸加密 | SSL (HTTPS) 內建 | 需自行實作 (SSL Stream / 自訂加密) |
| 驗證 | Windows/Basic/Digest/Client Cert/WS-Security | 需自訂 IServerChannelSinkProvider 實作 |
| 授權 | URL Authorization / 程式碼檢查 | 需自訂 |
ASMX 與 Remoting 均為 .NET Framework 早期技術,**新專案建議採用**:
.NET Remoting 在純 .NET 內部通訊、TCP/BinaryFormatter 組合下擁有壓倒性效能優勢 (低延遲、高吞吐、低 CPU);ASP.NET Web Services 則以標準化互操作性、部署簡易性、安全性整合勝出。技術選型應依據**系統邊界 (同質/異構)、效能需求、安全合規、團隊技能、長期維運**綜合判斷,並優先考慮現代化替代方案 (gRPC/Web API)。