2

我有这样一种情况,即有关用户的信息存储在 Web 应用程序缓存中,并且当该信息在一个应用程序中更新时 - 我想通知其他应用程序(在同一台机器上运行)应该从它的缓存中删除数据所以它可以刷新。基本上我需要在多个 asp.net 应用程序中保持缓存数据的同步。

我已经开始使用中央 Web 服务来帮助协调通知,但事实证明它比我认为的要复杂得多。

有没有一种方法可以让一个 asp.net 应用程序轻松地到达同一个盒子上的另一个应用程序以从缓存中清除项目?

有没有比使用应用程序缓存更好的方法来实现共享缓存信息?

我真的想创建一种应用程序以松散耦合的方式进行通信的方式 - 我查看了 nservice 总线,但对 MSMQ 的依赖吓坏了我 - 我的客户对 MSMQ 的体验很糟糕,并且不想支持需要它的应用程序.

建议?迈克尔

4

5 回答 5

3

共享数据库可能会给您带来最小的痛苦。

编辑

注意:ASP.NET 允许您对 SQL 服务器更改进行“缓存清除”触发器。应该在 MSDN 上的缓存示例中快速搜索以找到一些示例。因此,当存储在缓存中的用户信息在数据库中更改时,本地缓存副本将被清除并从数据库中重新加载。

于 2010-02-16T16:56:05.450 回答
3

我同意霍根的观点。最好是使用共享数据库。我想补充一点,在使用 SQL Server 时,您可以使用SQL Cache Dependency。这种 SQL Server 机制允许以这样一种方式通知应用程序,即在对数据进行更改后,使用的缓存可以直接失效。

于 2010-02-16T16:59:45.860 回答
1

除了 Microsoft Velocity - NCache、Coherence 等,还有可用于 .net 的商业分布式缓存。

于 2010-02-17T23:21:19.417 回答
0

速度怎么样?它是一种分布式缓存,可在服务器之间以及应用程序之间工作。它具有 PowerShell 管理和各种文档,可让您更快地运行,并且在长期内更易于维护。

于 2010-02-16T17:57:26.860 回答
-1

COM/DCOM 怎么样,使用命名空间 System.Runtime.Remoting

于 2010-02-16T16:55:46.753 回答