c# - 通过 global.asax 在应用程序中保留数据

标签 c# asp.net asp.net-3.5 global-asax

我需要在我的 C#/ASP 项目中存储一个全局可访问的列表 - 将其存储在服务器上的全局应用程序中而不是数据库中 - 因为仅在应用程序运行时才需要数据。

到目前为止,我已尝试在应用程序启动中创建一个列表(Global Asax) activePages= new List<ActivePage>(); Session["activePages"] = activePages;

这显然失败了,因为我此时无法设置 session 。正确的做法是什么?

理想情况下,我希望能够在应用程序启动时设置一个空白列表,并从任何 session 添加到该列表(即我可以同时从我的电脑和笔记本电脑添加到此列表)

我已经有了完成所有添加和管理的代码,但找不到全局保存此列表的方法。另外,我如何在应用程序的其他页面上使用此列表?我以前确实没有接触过全局 asax。

最佳答案

你需要看看Application State 。使用 Session 不会解决您的问题,因为每个用户访问您的应用程序时,都会创建一个新 session 。此外,一段时间不活动后,Session 会被销毁。

   void Application_Start(object sender, EventArgs e) 
   {
        List<ActivePage> activePages= new List<ActivePage>();
        Application["ActivePages"] = activePages;
   }

关于c# - 通过 global.asax 在应用程序中保留数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14625696/

相关文章:

c# - 在 getAsync 中为客户端添加 header (在 using block 中)

asp.net - 在不使用表格的情况下安排动态生成的标签和 aspx-Controls 看起来像字典

asp.net - 与 aspnet_regiis -ga <用户名> 相反

c# - 将 MatchCollection 转换为字符串数组

c# - EF6 从数据库返回错误数据

c# - 无法加载文件或程序集 'System.Data.SQLite' 或其依赖项之一。试图加载格式不正确的程序

c# - ASP.NET JQuery AJAX POST 返回数据,但在 401 响应内

.net - 为什么即使页面的 EnableSessionState ="False"ASP.NET 仍然访问状态服务器,但仅适用于 VB.NET 站点,而不适用于 C# 站点?

c# - 禁用/启用 ReorderList 控件

c# - WPF DataBinding 没有更新?