我有一个ASP.NET(4.0)webforms应用程序,我想知道在我的web应用程序中用户之间共享数据时我有什么选项。在没有数据库表的情况下在用户之间共享数据
最明显的解决方案是数据库表。但是有没有其他的选择?我已经阅读了一些关于“应用程序范围”的内容,但我不确定它对于这种情况是否有用。
我有一个ASP.NET(4.0)webforms应用程序,我想知道在我的web应用程序中用户之间共享数据时我有什么选项。在没有数据库表的情况下在用户之间共享数据
最明显的解决方案是数据库表。但是有没有其他的选择?我已经阅读了一些关于“应用程序范围”的内容,但我不确定它对于这种情况是否有用。
应用程序是您正在寻找的。
if (Application["CurrentUsers"] == null)
Application["CurrentUsers"] = 0;
Application["CurrentUsers"] += 1;
为当前在线计数器只是一个例子。
反应的一生,看到global.asax
:
protected void Application_Start(object sender, EventArgs e)
{
Application["CurrentUsers"] = 0;
}
protected void Application_End(object sender, EventArgs e)
{
Application["CurrentUsers"] = null;
}
应用对象或将其存储在内存数据库
应用程序对象是否在某个时候自动清除? – Johan 2013-03-19 14:27:48
直到工作进程没有被回收或者你需要清除它。 – TalentTuner 2013-03-19 14:29:27
当应用程序池被回收或在IIS上重新启动应用程序时会发生这种情况。它也发生在web.config发生变化时。您可以通过global.asax中的Application_Start和Application_End钩住应用程序事件 – 2013-03-19 14:31:32
为什么你不希望使用一个数据库?通过它的声音,它正是你应该使用的。 – Servy 2013-03-19 14:27:42
@Servy数据库目前有大约300个表,所以我想以另一种方式解决它 - 如果可能的话。 – Johan 2013-03-19 14:28:42
如果应用程序的复杂程度很高,那么这个信息属于一个更重要的原因,而不是几乎任何其他选项。如果这是一个hello world应用程序,并且你不会为学习如何配置数据库而烦恼,那么我会考虑其他任何事情的唯一原因是,但这显然不是这种情况。听起来就像你只需要花费一些时间来适当地构建数据库,可能使用模式或甚至多个数据库实例来隔离(并因此模块化)数据以使其更容易处理。 – Servy 2013-03-19 14:31:07