如何从wcf服务发送大型xml文件

本文关键字:大型 xml 文件 服务 wcf | 更新日期: 2023-09-27 18:16:07

下面的解决方案用于将小xml文件从WCF服务发送到客户端。

public interface IBatchDataExport
{
[OperationContract]
[XmlSerializerFormat]
[WebGet(UriTemplate = "export/{filename}")]
XmlDocument GetExportData(string filename);
}
...
public XmlDocument GetExportData(string filename)
{
System.Net.HttpStatusCode status = System.Net.HttpStatusCode.OK;
var xml = new XmlDocument();
xml.Load(filename);
return xml;
}

但是对于大文件,我在xml.Load(filename)中得到OutOfMemoryException异常。

从wcf服务发送大型xml文件的最佳方式是什么?

如何从wcf服务发送大型xml文件

我建议将XML文件作为流发送。流有助于读取数据时,它是大的,因为在你的情况下,因此不切实际的加载所有的数据一次。

有关详细信息,请参见使用WCF进行文件传输

您可以以块的形式发送xml ,也可以以块的形式处理xml 。因为XmlDocument将整个xml加载到内存中,所以它可能会超出内存。