Asp.net Web应用程序和内存状态

Asp.net Web应用程序和内存状态,asp.net,session,memory-management,ipc,state,Asp.net,Session,Memory Management,Ipc,State,我正在ASP.NET4.0中构建一个web应用程序,它必须维护用户之间共享的内存状态(更好地说是在用户组之间)。它不是一个标准应用程序,与一组用户相关的状态只有在一组操作完成(可能需要半个小时)后才能/可以/应该保持。这个要求不能改变 据我所知,我不能依赖进程内存,因为循环将清除我的状态。 我找到的唯一解决方案是创建一个标准应用程序(或windows服务),通过NamedPipe进行监控和访问,该应用程序将存储所有信息。 (为了可靠性,我还将实现一个自定义循环,在该循环中,只有当所有用户组完成其

我正在ASP.NET4.0中构建一个web应用程序,它必须维护用户之间共享的内存状态(更好地说是在用户组之间)。它不是一个标准应用程序,与一组用户相关的状态只有在一组操作完成(可能需要半个小时)后才能/可以/应该保持。这个要求不能改变

据我所知,我不能依赖进程内存,因为循环将清除我的状态。 我找到的唯一解决方案是创建一个标准应用程序(或windows服务),通过NamedPipe进行监控和访问,该应用程序将存储所有信息。 (为了可靠性,我还将实现一个自定义循环,在该循环中,只有当所有用户组完成其操作时,第一个进程才会终止)

您知道有什么更简单的方法或库可以帮助管理此应用程序的状态吗? 考虑到我期望高水平的并发访问状态,您对此设计有何建议


谢谢。

将会话数据存储在数据库中,并为需要共享数据的用户使用公共密钥

但是,你说你不能使用数据库,它必须在内存中。在那之后,我的第一个想法是做一些与您描述的类似的事情(在web应用程序调用的服务器上有一个独立的应用程序)。您也可以通过利用缓存来实现您的目标,但我不是100%确定。-缓存文章

哦,好主意!在服务器上创建一个临时XML文件来跟踪每个多用户会话,并在每个请求时加载/解析。但是,这仍然不在记忆中,所以这可能不好

HttpApplication
生命周期不适用于多个用户。我对
HttpApplicationState
对象一点也不困惑:

[本文](http://msdn.microsoft.com/en-us/library/ms972109.aspx)表示它适用于应用程序的每个用户。它基本上是一本字典


我还认为,您可能会从审查ASP.NET应用程序生命周期中获益。我参考的文章是。祝您好运,并让我们知道您最终要做什么

将会话数据存储在数据库中,并为需要共享数据的用户使用公共密钥

但是,你说你不能使用数据库,它必须在内存中。在那之后,我的第一个想法是做一些与您描述的类似的事情(在web应用程序调用的服务器上有一个独立的应用程序)。您也可以通过利用缓存来实现您的目标,但我不是100%确定。-缓存文章

哦,好主意!在服务器上创建一个临时XML文件来跟踪每个多用户会话,并在每个请求时加载/解析。但是,这仍然不在记忆中,所以这可能不好

HttpApplication
生命周期不适用于多个用户。我对
HttpApplicationState
对象一点也不困惑:

[本文](http://msdn.microsoft.com/en-us/library/ms972109.aspx)表示它适用于应用程序的每个用户。它基本上是一本字典


我还认为,您可能会从审查ASP.NET应用程序生命周期中获益。我参考的文章是。祝你好运,让我们知道你最后做了什么。

不能使用DB,必须在内存中。不能使用DB,必须在内存中。