2012-07-03 59 views
0

我使用C#代码隐藏页面创建了一个web服务器。 我想要的是一个用户查看和提交的东西在页面上, 和数据存储服务器端,以这样一种方式,它的持久性, 和其他用户可以查看该数据。服务器端的持久数据

我是restriced把它保存到一个平面文件或数据库,或者是有某种功能的,我可以在C#或.NET用于此目的,就像一个peristent跨会话变量或东西吗? (正常的静态变量将每个不同的用户不同的,对吧?)

回答

2

任何静态变量对所有用户都是通用的,但您应该使用Application。它像Session一样对所有用户都很普遍。如果您需要在应用程序重置时使用持久性,请使用数据库。

+0

正是我真正需要的,谢谢!应用 - ,因为它与创建它的进程死掉我确信静态变量是运行在后端代码每个用户不同的,但显然,这是联系在一起的网络服务器,而不是用户的交互 –

+0

HttpApplicationState是不是永久性的。 –

+1

我没有使用正确的词 - 坚持不是我想要的。对我而言,重要的是所有浏览页面的用户都应该可以访问这个变量,而且如果一个用户修改了这个变量,另一个用户刷新页面就会看到这个变化。当然,即使用户退出网页,变量也会保留。 它使用静态时的功能。它只会在Web服务器出现故障时丢失,这很好 –

-1

我是restriced把它保存到一个平面文件或数据库,或者是有某种功能的,我可以在C#或.NET使用 以此目的?

不能有另一个特点。请参阅平面文件(即您编写的文件或其他服务写入的文件)和数据库(可以是SQL数据库,文档数据库或任何其他形式),逻辑上涵盖了持续数据的所有可能性。理论上来说,我认为没有其他方法可以解决平面文件(即您管理的文件)或数据库(一些驱动程序或服务器进程管理的文件)。

什么你问的是类似“我有一台收音机,它可以打开或关闭,有没有它可以在任何其他国家?” - 坏消息,不,不管它是开还是关。

.NET框架中的任何功能都可以运行到您最后指定的两个名称之一。

1

您可以测试这些缓存变量

Cache["Key"] = yourValue; 

Application["Key"] = yourValue; 

您有相关的会话另一个缓存,但它不是全球:

Session["Key"] = value; 

你在你的页面有另一个缓存

ViewState["Key"] = value; 
0

如果你没有很多的数据,将其存储到内存中,并写入使用或者XmlSerializerBinaryFormatter盘。

你会希望来自世界各地的内存来存储你的数据作为申请单,可以访问你的页面集合中。

相关问题