在应用程序内存中保留不可序列化的对象
本文关键字:序列化 对象 保留 应用程序 内存 | 更新日期: 2023-09-27 18:03:54
在我的asp.net网站上,我为每个用户使用第三方组件来提供数据和包含操作。不幸的是,组件初始化非常慢(大约1-2秒(——太长了,无法初始化每个页面请求。
所以我正在尝试将这个对象存储在我的应用程序中。但无论如何,在下一个页面请求之后它都是空的。当然,简单的对象正在按预期工作。
到目前为止,我已经尝试过
- 静态变量
- HttpContext.Session
- HttpContext.Cache
- TempData
在所有情况下,我的应用程序都会忘记所有内容,但我不会出现任何错误。
有什么方法可以实现将这些对象保存在内存中吗?
这是我的最简单的例子。当我交换值来字符串时,一切都很好。有了这个对象,我在Login方法中得到了null
。
public class HomeController : Controller
{
public static IFrameworkItem Test;
// GET: Home
public ActionResult Index()
{
Test = FrameworkItem.Create("admin", "admin");
return View();
}
public ActionResult CreateItem(string username, string password)
{
var test = HomeController.Test;
return null;
}
}
好吧,经过几个小时的搜索,我发现这个框架会登录一个不在App_Data中的文件。所以我想每次发现文件更改时,ASP.NET网站都会重新启动。
这是一个非常糟糕的问题,但现在通过禁止这种行为来解决。