我的情况是,有关用户的信息存储在Web应用程序缓存中,并且在一个应用程序中更新该信息时 - 我想通知其他应用程序(在同一台计算机上运行)应该从中删除数据它是缓存,因此可以刷新。基本上我需要在多个asp.net应用程序中保持缓存数据同步。
我已经开始使用中央网络服务来帮助协调通知,但结果却比我认为的要复杂得多。
是否有一种方法可以让一个asp.net应用程序轻松地在同一个盒子上到达另一个,以清除缓存中的项目?
有没有比使用应用程序缓存更好的方法来实现共享缓存信息?
我真的想为应用程序创建一种以松散耦合的方式进行通信的方式 - 我查看了nservice总线但是对MSMQ的依赖吓跑了我 - 我的客户端遇到了MSMQ的不良体验,并且不想支持应用程序需要它。
连连呢? 迈克尔
答案 0 :(得分:3)
共享数据库可能会给您带来最少的痛苦。
修改强>
注意:ASP.NET允许您在SQL Server更改上创建“缓存清除”触发器。应该在MSDN上的缓存示例中快速搜索一些示例。因此,当存储在缓存中的用户信息在DB中发生更改时,本地缓存副本将清除并从数据库重新加载。
答案 1 :(得分:3)
我同意霍根的观点。最好是使用共享数据库。我想补充一点,使用SQL Server时,可以使用SQL Cache Dependency。此SQL Server机制允许以这样的方式向应用程序发送通知,即在对数据进行更改后,可以直接使用已使用的高速缓存。
答案 2 :(得分:1)
除了Microsoft Velocity之外,还有.net可用的商业分布式缓存--NCache,Coherence等。
答案 3 :(得分:0)
Velocity怎么样?它是一个分布式缓存,可在服务器之间以及应用程序之间工作。它具有PowerShell管理和各种文档,可以让您更快地进行,并且在长期内更易于维护。
答案 4 :(得分:-1)
使用名称空间System.Runtime.Remoting
,COM / DCOM怎么样?