或者 - 至少我认为正确的术语是有状态的。我得到了一个wcf服务,将大量数据列回给我。事实上,这么多的数据,我超过了maxrecievedmessagesize - 程序崩溃了。
我已经意识到我需要将调用拆分为db。而不是检索5000行,我需要得到第1 - 200行,记住行号200的id,从行号200的id获取接下来的200行,依此类推。
有谁知道怎么做?有状态(如“无国籍”的对立面)是正确的方法吗?我该怎么办......?有人能指点我一个例子吗?
答案 0 :(得分:0)
您的方案中不需要有状态服务。最好避免使用有状态服务,尤其是当你想在那里保存5000行时。
客户应指定所需的数据量。所以它可能是方法GetRows(索引,数量),其中index是获取行的起始索引和从起始索引开始的行数。
客户端也应该询问服务中的数据状态,服务只是发送数据状态。例如,当你拥有这5000行时,你可以拥有服务GetRowsState(索引,数量)的方法和同样的故事它只是说你行的最后更新时间,当你收到的时间更高或者在客户端时,然后再次从服务器GetRows更新客户端数据状态。