【发布时间】:2013-02-25 21:45:20
【问题描述】:
我需要通过 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,然后使用BinaryFormatter通过网络发送,然后使用Stream类型作为服务操作中的参数,是否有任何优势? - 对于几 MB 的消息,使用
Streamed传输模式有什么不同吗?
我不能使用像 Protobuf-net 这样的第三方库(很遗憾)。
感谢任何建议......
【问题讨论】:
标签: c# .net performance wcf serialization