Wcf 在两个请求之间存储数据的最佳方法

Wcf 在两个请求之间存储数据的最佳方法,wcf,Wcf,我需要一点理论上的建议。我的情况是:我有一个搜索系统,它返回一个找到的项目列表。但是用户只允许在一个页面上显示特定数量的项目,因此当他的第一个请求发送到我的WCF服务时,它会获取整个列表,然后测试列表是否不再长,然后测试允许我的用户获取的项目数量,如果列表不再长,则没有问题,我的服务会返回整个列表,但当它是,那么就有问题了。我需要让用户选择要显示的页面,因此我让javascript知道用户应该选择页面,并显示“页码对话框”,然后用户发送带有页码的第二个请求。并且基于此请求,Web服务选择需要的项

我需要一点理论上的建议。我的情况是:我有一个搜索系统,它返回一个找到的项目列表。但是用户只允许在一个页面上显示特定数量的项目,因此当他的第一个请求发送到我的WCF服务时,它会获取整个列表,然后测试列表是否不再长,然后测试允许我的用户获取的项目数量,如果列表不再长,则没有问题,我的服务会返回整个列表,但当它是,那么就有问题了。我需要让用户选择要显示的页面,因此我让javascript知道用户应该选择页面,并显示“页码对话框”,然后用户发送带有页码的第二个请求。并且基于此请求,Web服务选择需要的项目并将其发送回用户。因此,我需要做的是将整个列表存储在服务器上的firstsecond请求之间,我将非常感激如何存储它。我在考虑会话,但我不知道是否可以只将超时设置为特定会话(例如,
session[“list”]
),因为列表只使用一次,可以包含数千项,所以我不想在服务器上保留太长时间

另外,我不能使用标准分页,场景必须与上面描述的完全一致


谢谢

这听起来像是memcached的经典用例。它是一个基于网络的键值存储,用于存储临时值。与内存状态不同,它可以用于在服务器之间共享临时缓存的值(例如,您有多个节点),并且它是跨请求保存状态的一种很好的方法(避免使用cookie造成的延迟,cookie在每个http请求上都会传输到服务器或从服务器发送)

基本方法是为每个请求创建一个唯一的ID,并将其与该用户请求的特定(一组)memcached密钥相关联。然后将此唯一ID保存在cookie(或类似机制)中

不过,警告是,内存不稳定,因此随时可能丢失。实际上,这种情况并不常见,memcached算法使用LRU队列。更多细节

Memcached是内存中的键值存储,用于存储来自数据库调用、API调用或页面呈现结果的小块任意数据(字符串、对象)

我不是.net程序员,但似乎有一些实现:

.Net memcached客户端

.NET2.0Memcached 客户

在.NET2.0中开发的客户端 牢记性能和可扩展性。(支持一致的 哈希)BeIT Memcached 客户端(优化的C#2.0)

耶希亚


听起来是个不错的答案,但你能详细说明一下吗?也许可以解释为什么memcached会有帮助,基本设置是如何工作的,添加一两个链接以获得更深入的信息?