簡體   English   中英

如何在ASP.NET中緩存?

[英]How to cache in ASP.NET?

我有一些常用的數據,我想在我的global.asax文件中的Application_Start期間從我的數據庫和緩存加載。 我一直在閱讀MSDN關於緩存的文章 ,但我對正確的方法有點困惑。

他們將數據插入緩存的示例如下:

Cache.Insert("CacheItem2", "Cached Item 2");

所以我在global.asax中添加了以下內容:

using System.Web.Caching;
...
Cache.Insert("audioVariables", audioVariables);

但是拋出,需要An object reference is required.... 好的,很好 - 所以我在Application_start創建了一個Cache類的實例:

Cache c = new Cache();
c.Insert("audioVariables", audioVariables);

當我調用Insert它會拋出An unhandled exception of type 'System.NullReferenceException' occurred in System.Web.dll錯誤中An unhandled exception of type 'System.NullReferenceException' occurred in System.Web.dll

Application_Start上將對象插入緩存的正確方法是什么?

更新:

堆棧跟蹤 -

[NullReferenceException:對象引用未設置為對象的實例。] System.Web.Caching.Cache.Insert(String key,Object value)+66 MyVerbalInk.MvcApplication.Application_Start()in c:\\ inetpub \\ VerbalInk2.0 \\ MyVerbalInk \\的Global.asax.cs:26

[HttpException(0x80004005):對象引用未設置為對象的實例。]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context,HttpApplication app)+9935033
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext,HttpContext context,MethodInfo [] handlers)+118
System.Web.HttpApplication.InitSpecial(HttpApplicationState狀態,MethodInfo []處理程序,IntPtr appContext,HttpContext上下文)+172
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext,HttpContext context)+336
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)+296

[HttpException(0x80004005):對象引用未設置為對象的實例。] System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+9913572
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)+101 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext context)+254

您可能希望閱讀本文:

http://www.asp.net/web-forms/overview/data-access/caching-data/caching-data-at-application-startup-cs

但是,問題的要點是在集成模式下運行的II7或更高版本中,Application_Start()中沒有可用的HttpContext。 你必須使用`HttpRuntime.Cache.Insert()'而不是Cache,或者HttpContext.Current.Cache

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM