代码之家  ›  专栏  ›  技术社区  ›  MIantosca

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

  •  2
  • MIantosca  · 技术社区  · 15 年前

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

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

    有没有一种方法可以让一个asp.net应用程序轻松地访问同一个框中的另一个应用程序,以便从缓存中清除项目?

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

    我真的想创造一种让应用程序以松散耦合的方式进行通信的方式——我查看了NService总线,但对MSMQ的依赖吓跑了我——我的客户端在MSMQ方面有过不好的体验,不想支持需要它的应用程序。

    建议? 迈克尔

    5 回复  |  直到 15 年前
        1
  •  1
  •   Udi Dahan    15 年前

    除了Microsoft Velocity-NCache、Coherence等,还可以为.NET提供商用分布式缓存。

        2
  •  3
  •   Steven    15 年前

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

        3
  •  3
  •   Hogan    15 年前

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

    编辑

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

        4
  •  0
  •   jwmiller5    15 年前

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

        5
  •  -1
  •   Dewfy    15 年前

    com/dcom呢,使用namespace system.runtime.remoting