我需要通过 WCF 发送和接收包含一些小字段以及一个大 Xml 字符串的对象,如下所示:
[DataContract]
public class ServiceResponse
{
[DataMember]
public int Id { get; set;}
[DataMember]
public string Xml {get; set;}
}
我必须使用基于 Http 的绑定,但服务是内部的,因此将共享合同 dll。Xml 字符串可能达到几 MB。该服务允许通过客户端机器在服务器之间传输数据,因此第一个客户端调用检索一大块 Xml,将其保存到本地磁盘,然后第二个调用将数据从磁盘传输到其他地方某个其他盒子上的另一个服务实例. 所以客户端从字面上保存数据并转发它,根本没有逻辑或处理。
我需要最有效的机制——即有效载荷小、速度快——来发送这些对象。
一些问题:
- 在有效负载中发送大量 Xml 的最有效方法是什么?
MemoryStream
在使用 a 通过线路发送之前将对象序列化为 a 有什么好处,BinaryFormatter
然后使用Stream
类型作为服务操作中的参数?- 对于几 MB 的消息,使用
Streamed
传输模式有什么不同吗?
我不能使用像 Protobuf-net 这样的第三方库(很遗憾)。
感谢任何建议...