【问题标题】:Hold global data for an ASP.net webpage保存 ASP.net 网页的全局数据
【发布时间】:2010-11-02 03:57:47
【问题描述】:

我目前正在开发一个大型网站,该网站非常动态,因此需要在内存中几乎永久地存储大量信息(例如结帐的配置设置或使用的树来实现菜单结构)。

此信息不是特定于会话的,它对于使用该网站的每个线程都是一致的。

在 ASP 中全局保存这些数据的最佳方式是什么,以便在需要时可以访问,而不是每次使用时都重新加载?

【问题讨论】:

    标签: c# asp.net memory-management global


    【解决方案1】:

    web.config 中的任何 AppSettings 都是 automatically cached(即,并非每次您需要使用它们时都从 XML 中读取它们)。

    您也可以手动manipulate the cache yourself

    编辑:更好的链接...

    【讨论】:

    • AppSettings 不是很合适,据我所知,我说的是存储产品集合之类的东西 -> 实际对象。
    • 那你可能想要我回答的后半部分
    • 投反对票的人能否解释为什么使用缓存是个坏主意?
    • 决定使用应用程序缓存,似乎可以解决问题!
    【解决方案2】:

    不清楚您的信息是否是特定于会话的...如果是,则使用 ASP 会话对象。鉴于您对比例的描述,您可能希望查看将状态存储在 Sql Server 中:

    http://support.microsoft.com/kb/317604

    这就是 101 方法。如果您正在寻找更强大的东西,请查看 memcached(发音为 Mem-Cache-Dee):

    http://www.danga.com/memcached/

    这就是 Facebook 和 Twitter 等应用使用的系统。

    祝你好运!

    【讨论】:

      【解决方案3】:

      我认为使用 ASP.NET 缓存功能是一个不错的选择。除了 John 的回答,您还可以使用 Microsoft 的 Patterns & Practices 团队的Caching Application Block

      【讨论】:

        【解决方案4】:

        这是一个很好的视频,探索了保留应用程序状态的不同方法。 http://www.asp.net/learn/3.5-videos/video-11.aspx 它刷上 Application 对象,该对象对整个应用程序、所有用户都是全局的,并向您展示如何创建命中计数器(显然,您可以存储对象而不是存储整数)。如果您需要进行更改,您确实需要使用并发锁,而且我不确定它如何处理大量数据,因为我从来没有必要在那里保留这么多数据。

        【讨论】:

          【解决方案5】:

          我通常在 Application 对象中保留类似的内容。

          【讨论】:

          • 你能不能解释一下这个答案,也许是一些简短的示例代码或一个不错的教程的链接?
          【解决方案6】:

          如果页面相互依赖并且相互发布,您可以使用页面的请求对象。可能不是您要寻找的答案,但绝对是要使用的内存中最小的答案之一。

          【讨论】:

            【解决方案7】:

            我过去也遇到过同样的情况,发现界面是最具可扩展性的解决方案。应用程序缓存可能是当今的解决方案,但它会扩展以满足您的需求吗?

            如果您需要扩大规模,您可能会发现 cookie 或某种类型的临时数据库存储可以解决问题。只需向您的界面添加一个新方法,并将界面设置为从 web.config 中选择“模式”。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2013-07-05
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-04-15
              相关资源
              最近更新 更多