选择信道

选择信道

 

.NET Framework 远程处理基础结构提供以下信道实现:

IpcChannel

IpcChannel 类使用命名管道为同一计算机上的多个进程应用程序提供高速进程间通信。一个 IpcChannel:

  • 通过使用命名管道在发送方和接收方之间通信。

  • 支持采用二进制格式和行业标准 SOAP 序列化格式的编码负载。

  • 为对象引用生成和使用 ChannelDataStore

  • 支持模拟和委托。

  • 支持命名管道上的访问控制列表 (ACL) 以获取高级访问控制。

在应用程序必须与在同一计算机上的不同进程中运行的其他应用程序通信时,使用 IpcChannel。因为 IpcChannel 使用命名管道,所以,应用程序通常可以获得最高的通信性能并使用模拟和委托控制对远程对象的访问。对于必须在一定负载下正常执行的三层应用程序,此功能对于第二层和第三层之间的通信特别有用。

TcpChannel

TcpChannel 类用二进制格式化程序将所有消息序列化为二进制流,并且用 TCP 协议将流传输到目标统一资源标识符 (URI)。TcpChannel 执行以下功能。

  • 通过使用 TCP 套接字在发送方和接收方之间通信。

  • 支持采用二进制格式和行业标准 SOAP 序列化格式的编码负载。

  • 为对象引用生成和使用 ChannelDataStore。

  • 支持模拟和委托。

  • 支持 SSPI 加密。

TcpChannel 打开并缓存与当时正在向另一个服务器发出请求的线程一样多的连接。客户端上的套接字连接将在处于不活动状态 15-20 秒钟之后关闭。

如果您正在生成大量使用 .NET Framework 远程处理的应用程序,则可能容易错误地使用 HttpChannel 来连接到通过 TcpChannel 侦听的服务器应用程序域。如果您进行了该连接,客户端将收到以下异常:“基础连接已经关闭:接收时发生意外错误”。如果您的客户端收到该异常,则应检查客户端和服务器是否有不匹配的信道。

HttpChannel

HttpChannel 类使用 SOAP 协议将消息传输到远程对象或者从远程对象传输消息。所有消息都通过 SoapFormatter 来传递,消息在这里被更改为 XML 并被序列化,所需的 SOAP 头将添加到流中。如果还指定了二进制格式化程序,则会产生二进制数据流。然后,数据流会使用 HTTP 协议传输到目标 URI。HttpChannel 符合 SOAP 1.1 并执行以下功能:

  • 将 HTTP 协议用作传输协议,在发送方和接收方之间通信。

  • 支持采用 SOAP(一种 XML 编码标准)和二进制格式的编码负载。

  • 将接收方设置为以 ASP.NET 并在 TCP 套接字上接收 HTTP 请求和发送 HTTP 响应。

  • 为对象引用生成和使用 ChannelDataStore。

  • 支持模拟和委托。

  • 支持 SSPI 加密。  

序列化格式化程序

 

序列化是获取对象并将其状态信息转换为可存储或可传输形式的过程。序列化的基本思想是对象将其当前状态写到临时性存储区(内存或网络流)或持久性存储区中,对象的当前状态通常由其成员变量的值指示。随后,可以通过从存储区读取或反序列化对象的状态来重新创建对象。序列化处理有关在序列化对象时使用的对象指针和循环对象引用的所有详细信息。

序列化的流可以使用 XML、SOAP 或压缩二进制表示形式编码。所使用的 Formatter 对象确定该编码格式。格式化程序实际上是信道的可插接式组件,可以插入自定义格式化程序来替换由远程处理提供的标准 XML 或者二进制格式化程序。可插接式格式化程序使开发人员能够用提供的两种格式(二进制和 SOAP)序列化对象或创建它们自己的格式。

有关详细信息,请参见接收器和接收链

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值