如何在.NET 4中缓存值,以便它们可以跨多个应用程序使用?

时间:2011-06-03 00:01:53

标签: asp.net c#-4.0

我在Visual Studio 2010中创建了一个网站(文件 - >新网站),并在最终的解决方案文件中添加了两个网站。我知道,对于任何一个网站,我都可以使用context.Application在多个用户之间共享值。但有没有办法在不同网站的用户之间分享价值?

换句话说,在.NET中是否存在某种“解决方案级别”的缓存对象?我还没有通过搜索引擎找到任何答案。

提前感谢您的帮助

4 个答案:

答案 0 :(得分:0)

您是否在后端没有可用的数据库?如果这样做,请将数据保存/读取到数据库。我不知道你是否有任何竞争条件,但这将是你的主要方法。

如果您没有数据库,您的下一个选择可能是读/写磁盘。这假定应用程序都托管在同一台服务器上,并具有对特定目录的读/写访问权。

我的最后一个选择是寻找其他一些内部应用程序(但相同的IIS)方法,虽然听起来这就是你所追求的。

答案 1 :(得分:0)

没有这样的选择。最好的选择是永久数据存储(XML,数据库......)。

尽管ASP.NET支持会话(会话状态服务器)这样的事情,但它不支持IPC w3wp的{​​{1}}。

当然,您可以编写自己的服务(您应该处理并发问题),但这需要大量工作并且容易出错。使用持久性数据存储,除非您有高速率的读/写操作,这会使数据库瘫痪(罕见的应用程序对性能至关重要)。

答案 2 :(得分:0)

当我需要在Webware之间共享数据时,我更喜欢开发WCF服务并通过Singleton服务提供这些数据。

然后,每个客户端都可以从Singleton服务获得相同的数据。

答案 3 :(得分:0)

看看Velocity - 它是多个服务器上多个应用程序的分布式缓存,但可以在一台服务器上愉快地运行。