【问题标题】:How to send large xml files from wcf service如何从 wcf 服务发送大型 xml 文件
【发布时间】:2012-01-09 15:43:56
【问题描述】:

以下解决方案适用于将小型 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 文件的最佳方式是什么?

【问题讨论】:

    标签: c# xml wcf


    【解决方案1】:

    我会建议发送XML文件作为Stream。当您的案例中很大时,流有助于阅读数据,因此一次加载所有数据都是不切实际的。

    参见File Transfer with WCF更多详细信息

    【讨论】:

      【解决方案2】:

      您可以将 xml 分块发送 并处理 chunks 中的 xml。因为 XmlDocument 将整个 xml 加载到内存中,所以它可能会内存不足。

      【讨论】:

        猜你喜欢
        • 2021-10-09
        • 1970-01-01
        • 2011-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-25
        相关资源
        最近更新 更多