在应用程序内存中保留不可序列化的对象

时间:2015-07-22 10:30:04

标签: c# asp.net

在我的asp.net网站上,我为每个用户使用第三方组件来提供数据和包含动作。不幸的是,组件初始化非常慢(大约1-2秒) - 初始化每个页面请求的方式太长。

所以我试图将这个对象存储在我的应用程序中。但无论如何,在下一页请求之后它是null。当然,简单的对象按预期工作。

到目前为止我已经尝试了

  • 静态变量
  • 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;
    }
}

1 个答案:

答案 0 :(得分:0)

好吧,经过多个小时的搜索后,我发现这个框架确实登录了一个不在App_Data中的文件。所以我猜每次发现文件更改时都会重新启动ASP.NET网站。

一个真正的坏问题,但现在通过禁止此行为解决了这个问题。