我需要可以在 WCF 和 ASP .NET 应用程序中工作的缓存工具。我见过:
System.Web.Caching.Cache
这不能从 WCF 中使用(据我所知,只有当服务托管在 IIS 中时它才可用,但情况并非总是如此)System.Runtime.Caching
它们都可以使用,但只能从 .NET 4 获得,但我们的 .NET 版本是 3.5。
有什么建议么?
您绝对可以System.Web.Caching.Cache
在 IIS 之外使用。只需添加一个引用就System.Web
可以了 - 它绝对不是 IIS 的功能。
在 .NET 1.0 和 1.1 中存在问题,但在 2.0 及更高版本中显然没有 - 请参阅此知识库文章。
但像 Davide Piras 一样,我也建议考虑 AppFabric 在两个应用程序之间共享缓存,如果这有用的话。我不确定您所说的“我的要求买不起 AppFabric 之类的东西”是什么意思——“负担得起”是指性能、内存还是什么?虽然 AppFabric 设计用于缓存服务器,但它并不需要专用硬件,但如果需要,您可以在与应用程序相同的机器上运行该服务。
新解决方案使用 Windows Server AppFabric 缓存
https://github.com/geersch/AppFabric
http://dotnet.dzone.com/articles/caching-wcf-services-part-2
http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/AAP314
***2.in .NET 1.0 和 1.1 http://support.microsoft.com/kb/917411