【问题标题】:Shared data in an ASP.NET applicationASP.NET 应用程序中的共享数据
【发布时间】:2010-03-19 11:54:56
【问题描述】:

我有一个基本的 ASP.NET 应用程序,用于请求存储在磁盘上的数据。这是从文件中加载并作为响应发送的。我希望能够将从这些文件加载​​的数据存储在内存中,以减少从磁盘读取的次数。

所有请求都将请求相同的数据,因此拥有一个可供所有请求访问的内存数据缓存是有意义的。

创建可用于存储和访问此缓存数据的单个可访问对象实例的最佳方法是什么?我查看了 HttpApplication,但显然它的一个新实例是为并行请求创建的,因此它不符合我的需求。

【问题讨论】:

    标签: c# asp.net caching


    【解决方案1】:

    首先,您可以缓存响应。看这里:How to cache in ASP.NET by using Visual C# .NET

    如果您希望可以手动将文件加载到内存中并将其内容保存在静态字段中。这些将在同一应用程序域的所有客户端之间共享。

    无论如何,这会消耗服务器内存。确保你有足够的。

    【讨论】:

    • 让他们进入会话?那会有什么帮助,然后他将为每个客户端(会话)在内存中保存一份文件副本......
    【解决方案2】:

    使用this.Cache.Add/Get

    这个缓存 api 很简单,在大多数情况下都很好用。

    【讨论】:

    • 大概这缓存在内存中?还有一个所有并行请求都可以访问的缓存吗?如果是这样,谢谢 - 这会工作得很好。 :)
    • 是的,这是真的,只要您使用相同的密钥,内存中只会加载一个实例!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多