本文主要讲述WCF通道的相关问题,怎样维护WCF通道等技术性的问题。这些内容都是一些门户网站和技术论坛找到的,中间可能有不少错误是我没有挑出的,欢迎大家指正。
可以使用中网络带宽较小的网络环境中,当WCF在两个实体间通讯的时候,便自动创建一个信息通道转接通讯,这个消息包含数据请求和相应。WCF使用特殊的编码器将请求和响应数据转换成一系列的字节。#t#
我所带的项目里遇到大文件分布式传输问题,经过分析考虑采用WCF通道压缩技术来解决此问题。执行这样的编码是需要传输大文件(XML格式)由一台机器到另一台机器传输,而连接有速度限制。我不用写一个特殊的函数边压缩和边解压,而是配置传输通道可以做到这一点,这种方式压缩可重复使用的任何契约。我发现自己编写的消息编码器是最简单的方式来实现功能,真正的问题是如何编写信息编码器,在MSDN上没有找到任何关于此应用的实例。消息契约编码器的想法是Hook连接两端发送和接收信息的渠道。程序是采用Microsoft Visual Studio 2008 WCF设计。
发送方:代码中加入方法,该方法及其参数的序列化成WCF通道,消息编码序列化的信息将成为一个字节数组,字节数组发送传输层。接收方:传输层接收字节数组,消息编码器并行化字节数组到一条消息,该方法及其参数并行化到一个WCF通道,方法是被监听的。
当加入压缩信息编码器,该方法要求有一点改变,发送方:代码中加入方法,该方法及其参数的序列化成WCF通道,消息契约编码让其内在的信息编码序列的信息成为一个字节数组,消息契约编码压缩的字节数组第二个字节数组,字节数组发送传输层。接收方:传输层接收字节数组,消息契约编码的字节数组解压到第二字节数组,消息契约编码让其内在的信息编码化的第二个字节数组消息,该方法及其参并行化到WCF通道,方法是被监听的。