我有一个WCF服务,需要从数据库中读取大量(1000万到2000万)个对象。
我想做的是让客户端打开一个流,让服务器在数据库中读取数据。
因此,客户端可以只是循环反序列化消息,直到它从Twitter服务器获取EOF消息,采用Twitter Streaming API的风格,但是使用有限的集合。我遇到的问题是如何返回流然后继续写入它。这可以用WCF吗?
答案 0 :(得分:2)
如何使用WS Dual Http之类的内容来设置流/阻止服务。有了它,您就拥有了一个异步双向回调通道,允许您在服务器和客户端之间来回请求/回复信息。如果您想要流式传输整个集合,您可能会看到的一些问题是,当其他用户尝试访问该服务时,某些资源可能会阻止其他请求(或超时)。
答案 1 :(得分:0)
问题是WCF不向操作提供响应流。从操作返回的流只是某个消息的“内容”。我试图用一些线程场景欺骗WCF,我返回MemoryStream并尝试从其他线程填充它,但正如预期的那样它不起作用。
提到HttpHandler是唯一的出路。
答案 2 :(得分:0)
您可能需要查看PollingDuplexHttpBinding(通知ID可能可能: - )。
有些人不太喜欢这种绑定,但是在获得正确配置的最初障碍后我没有遇到太多麻烦。
它当然可以完成我认为的工作,因为它只不过是我所理解的在网络套接字中使用的“长轮询技巧”。
HTH。