我面临编写在IIS上运行的WCF服务器以供不同计算机上的其他平台使用.我需要将大量对象(序列化)返回给客户端.我需要它进行流式传输,因为从我的数据库中获取所有数据并根据cilent的要求进行排列是一个非常漫长的过程,因此我需要客户端能够在流出时对结果进行处理.
在对主题进行一些阅读之后,似乎如果我使用带有transferMode StreamedResponse的WCF,我可以返回具有延迟执行的对象,这可能满足我的需求.
我读了以下文章:
http://weblogs.asp.net/cibrax/archive/2008/06/10/streaming-large-content-with-wcf-and-deferred-execution.aspx
并实现了与他们描述的类似的WCF.但是我改变了他们的代码:
for(long i = 0; i < 1000; i++) //All the customers should be read from the database { yield return new Customer { FirstName = "Foo",LastName = "Bar",Address = "FooBar 123" }; }
至:
for(long i = 0; i < 1000000; i++) //All the customers should be read from the database { yield return new Customer { FirstName = "Foo",Address = "FooBar 123" }; }
因此它会模拟大量数据.
我注意到,当我这样做时,客户端的功能在返回对象之前会停顿几秒钟.
为什么会这样?
数据不应该立即开始在流上流动吗?
这不是具有延迟执行的流式WCF的重点吗?
你对我的问题有更好的建议吗?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。