.NET Remoting 架构深度解析
1. 引言
在展示简单的客户端和服务器交互后,我们将先对 .NET Remoting 架构进行概述,再深入探讨其细节。本文将围绕以下几个核心主题展开:
- 通道的功能及配置方法
- 格式化器及其使用方式
- 实用类 ChannelServices
和 RemotingConfiguration
- 激活远程对象的不同方式,以及无状态和有状态对象在 .NET Remoting 中的应用
- 消息接收器的功能
- 按值和按引用传递对象的方法
- 使用 .NET Remoting 租赁机制进行有状态对象的生命周期管理
2. 通道
通道用于 .NET 客户端和服务器之间的通信。.NET Framework 1.1 自带了使用 TCP 或 HTTP 进行通信的通道类,同时也支持为其他协议创建自定义通道。
- HTTP 通道 :大多数 Web 服务使用此通道,它基于 HTTP 协议进行通信。由于防火墙通常会开放端口 80 以便客户端访问 Web 服务器,.NET Remoting Web 服务可以监听该端口,方便客户端使用。
- TCP 通道 :也可在互联网上使用,但需要配置防火墙,使客户端能够访问 TCP 通道使用的指定端口。在内部网络环境中,TCP 通道的通信效率比 HTTP 通道更高。
当客户端对远程对象进行方法调用时,客户端通道对象会向远程通道对象发送消