Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在用户之间共享数据-无数据库表_C#_Asp.net - Fatal编程技术网

C# 在用户之间共享数据-无数据库表

C# 在用户之间共享数据-无数据库表,c#,asp.net,C#,Asp.net,我有一个ASP.NET(4.0)webforms应用程序,我想知道在我的web应用程序中,在用户之间共享数据时有哪些选项 最明显的解决方案是数据库表。但还有其他选择吗?我读过一些关于“应用程序范围”的内容,但我不确定它是否对这个场景有用。应用程序就是您要搜索的 if (Application["CurrentUsers"] == null) Application["CurrentUsers"] = 0; Application["CurrentUsers"] += 1; 只是当前在线

我有一个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;
}

应用程序对象或将其存储在内存数据库中

可以,但应用程序对象的生存期是多久?只要应用程序处于活动状态。因此,每当放弃所有会话时,应用程序也会丢失。例如,如果重新启动IIS。@LinusCaldwell好的,谢谢。另一种情况是,如果所有用户都离开我的网站,我想是吧?@Johan,不是,但过一段时间,工人就会关闭。您可以通过IIS设置来控制。为什么不使用数据库?听上去,这正是您应该使用的。@Servy数据库目前有约300个表,因此,如果可能的话,我想用另一种方法来解决它。如果应用程序的复杂性很高,这就是为什么这些信息属于一个表,而不是几乎任何其他选项的原因。我会考虑其他事情的唯一原因是,如果这是一个Hello World应用程序,你不必费心去学习如何配置一个数据库,但这显然不是这里的情况。听起来您只是需要花费一些时间来适当地构建数据库,也许可以使用模式甚至多个数据库实例来隔离(并因此模块化)数据,以使其更易于使用。@Servy我对数据库结构没有任何问题。我只是好奇是否还有其他选择。但是感谢您提供的信息,我想我会坚持使用我的数据库:)应用程序对象是否会在某个时候自动清除?直到工作进程未回收或您需要清除它。这发生在应用程序池回收或应用程序在IIS上重新启动时。更改web.config时也会发生这种情况。您可以通过全局中的application_Start和application_End连接到应用程序事件。asaxGiorgio关于应用程序池回收的评论是一个需要注意的重要问题-即使是一个健康的web服务器,也会在应用程序池空闲时或每29小时(我认为是29…)回收一次应用程序池。因此,即使你在正常跑步,你仍然会经常失去一切。