0

我在磁盘上有文本文件,它们作为字符串(实际上是 POX 内容)发送给 WCF 调用者。当前的 WCF 方法代码将整个文件作为字符串读入内存,并返回该字符串。方法签名/接口不能改变。

系统流行度已经增长,我怀疑这不会是可持续的,因为一些字符串结果的大小为 400k。

任何人都可以推荐一种在.NET 4.5中策略性地处理字符串的方法(注意我使用小写的“d”,我不一定要询问IDisposable),或者通过另一种方法通过WCF将文件作为字符串提供,内存使用量很少尽可能?

谢谢。

4

2 回答 2

0

除了压缩:

据我了解,您的响应对象中有字符串类型属性,这是主要问题。创可贴解决方案是显式调用 GC,但根据 MSDN

“可以通过调用 Collect 来强制进行垃圾回收,但大多数情况下,应该避免这样做,因为它可能会产生性能问题。”

所以你最好改变你的合同(如果可能的话)并使用流传输文件。

于 2013-06-07T12:04:22.787 回答
0

一种方法是对您的响应设置压缩。我发现这篇文章可以使用 GZip 压缩算法对来自 WCF 服务的响应进行压缩:http: //msdn.microsoft.com/en-us/library/ms751458.aspx

注意:在客户端理论上他们应该在消息头中看到内容已经用 GZip 压缩,并自动解压正文。希望这可以帮助。

于 2013-06-06T18:20:39.773 回答