C# ASP.NET应用程序中的共享数据

C# ASP.NET应用程序中的共享数据,c#,asp.net,caching,C#,Asp.net,Caching,我有一个基本的ASP.NET应用程序,用于请求存储在磁盘上的数据。这是从文件加载并作为响应发送的。我希望能够将从这些文件加载的数据存储在内存中,以减少从磁盘读取的次数 所有请求都将请求相同的数据,因此,有一个可供所有请求访问的内存中数据缓存是有意义的 创建单个可访问对象实例的最佳方法是什么,我可以使用它来存储和访问缓存的数据?我已经研究了HttpApplication,但显然它的一个新实例是为并行请求创建的,因此它不适合我的需要。首先,您可以缓存响应。看这里: 如果您希望手动将文件加载到内存中,

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

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


创建单个可访问对象实例的最佳方法是什么,我可以使用它来存储和访问缓存的数据?我已经研究了HttpApplication,但显然它的一个新实例是为并行请求创建的,因此它不适合我的需要。

首先,您可以缓存响应。看这里:

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


无论如何,这将消耗服务器内存。确保您有足够的资源。

使用this.Cache.Add/Get


这个缓存api很简单,在大多数情况下都能很好地工作。

是否将它们放入会话?如果每个客户端(会话)的内存中都有一份文件副本,那么这会有什么帮助呢?…大概这会缓存在内存中?所有并行请求都可以访问一个缓存?如果是这样的话,谢谢-那很好。:)是的,这是真的,只要使用相同的键,内存中只会加载一个实例!