我有一些WCF服务(让我们调用X),其中有一个缓存服务客户端。因此,调用我的WCF服务的最终用户不知道缓存,也不应该关心它。
我的缓存服务也是一个WCF服务,它不是公开可用的,只是X可以调用它。如你所知,可以在缓存中放置任何类型的对象(让我们假设Cache是HttpRuntime.Cache),但是当问题出现在WCF中时,从WCF服务呈现缓存的值,任何类型的对象都可能是个问题因为数据类型未知。
我的问题是,如何从WCF中提供缓存值,因为它可以是通用的?
答案 0 :(得分:0)
我知道如果你坚持使用这种架构,这不会解决你的问题,但我个人完全避免这种设置。
我会使用某种专用数据缓存与专用客户端以高效的方式与缓存进行通信。
如果您没有使用缓存进行进程外处理,那么您可以使用内存缓存,否则如果您要进行跨进程或通过网络进行,则最好使用缓存一个专用的数据缓存,如 AppFabric / Velocity 或 Memcached 。
您还可以获得开箱即用的其他许多好处,例如分布式缓存,冗余和自动故障转移。我怀疑WCF将成为数据缓存未知对象的成功解决方案。