【问题标题】:Caching usable in both WCF and ASP .NET applications (.NET 3.5)缓存可用于 WCF 和 ASP .NET 应用程序 (.NET 3.5)
【发布时间】:2012-07-26 01:38:41
【问题描述】:

我需要可以在 WCF 和 ASP .NET 应用程序中工作的缓存工具。我看过:

  1. System.Web.Caching.Cache 在 WCF 中不可用(据我了解,只有在服务托管在 IIS 中时它才可用,但情况并非总是如此)

  2. System.Runtime.Caching 两者都可以使用,但只能在 .NET 4 中使用,但我们的 .NET 版本是 3.5。

有什么建议吗?

【问题讨论】:

  • 在这里查看我的答案:stackoverflow.com/a/7849068/559144
  • @DavidePiras 感谢您的建议。但我的要求买不起 AppFabric 之类的东西。你知道 .NET 本身有什么工具可以解决这个问题吗?
  • 您是否正在寻找一个进程外分布式缓存,以便在同一台服务器上运行的 IIS 和 Windows 服务都可用,或者究竟是什么?是否需要在同一台机器或不同机器的不同进程之间共享缓存内容?

标签: c# asp.net .net wcf caching


【解决方案1】:

您绝对可以在 IIS 之外使用System.Web.Caching.Cache。只需添加对 System.Web 的引用即可 - 这绝对不是 IIS 的功能。

在 .NET 1.0 和 1.1 中存在问题,但在 2.0 及更高版本中显然没有 - 请参阅 this Knowledge Base article

但像 Davide Piras 一样,我也建议考虑 AppFabric 在两个应用程序之间共享缓存,如果这有用的话。我不确定您所说的“我的要求买不起 AppFabric 之类的东西”是什么意思——“负担得起”是指性能、内存还是什么?虽然 AppFabric 旨在用于缓存服务器,但它并不需要专用硬件,但如果需要,您可以在与应用程序相同的机器上运行该服务。

【讨论】:

  • 感谢卡森。 Appfabric 不是“负担得起的”,我的意思是我不打算在我的应用程序中将其用作通用缓存解决方案。我只需要一个简单的解决方案来缓存一堆配置以避免碰到 db 。范围有限..
  • @theneoindian:很公平。在这种情况下,一定要使用System.Web.Caching.Cache,它会为你完成这项工作。
  • 看看 AppFabric 缓存。它将允许您在 ASP.NET 和 WCF 之间共享缓存。即使两者都托管在不同的服务器上。此缓存至少需要 .NET 3.5。对于 WCF,请参阅以下文章:pieterderycke.wordpress.com/2012/08/28/… 对于 ASP.NET:cshandler.com/2011/07/using-window-server-appfabric-for.html
【解决方案2】:
猜你喜欢
  • 2013-04-08
  • 1970-01-01
  • 1970-01-01
  • 2012-12-18
  • 2011-08-10
  • 1970-01-01
  • 1970-01-01
  • 2011-03-18
  • 2011-04-23
相关资源
最近更新 更多