在同一台计算机上的ASP.NET应用程序之间进行通信

时间:2010-02-16 16:52:13

标签: asp.net caching nservicebus

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

我已经开始使用中央网络服务来帮助协调通知,但结果却比我认为的要复杂得多。

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

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

我真的想为应用程序创建一种以松散耦合的方式进行通信的方式 - 我查看了nservice总线但是对MSMQ的依赖吓跑了我 - 我的客户端遇到了MSMQ的不良体验,并且不想支持应用程序需要它。

连连呢? 迈克尔

5 个答案:

答案 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怎么样?