ここでは奇妙な問題です。 asp.net webforms(4.5/4.7)のローカル開発では、httpruntime.Cacheが正しく設定されていても常にnullを検出しています。私はそれを別のiis expressワークステーションで試行し、テスターのシングルページWebページでも同じ動作を見つけました。本番IIS 7.5の同じページが動作し、キャッシュから格納して配信しています。コードは具体的には以下の通りですが、私はhttpruntime.Cacheに単純な文字列を格納しているテスターを試しました。iisExpressローカルのhttpruntime.cacheは常にnull
var cache = System.Runtime.Caching.MemoryCache.Default;
var luCacheKey = "lu_" + dsName;
var ic = HttpRuntime.Cache.Get(luCacheKey) as ICollection;
if (ic == null) {
、そこに私が見ることができるかもしれないweb.configファイルで何かがあるか、これはIIS Expressの動作が期待されている場合は、テスターそう
var item = HttpRuntime.Cache.Get("x");
if (item == null)
{
HttpContext.Current.Cache.Insert("x", "test" , null, DateTime.Now.AddHours(1), Cache.NoSlidingExpiration);
Response.Write("added to cache<br>");
}
else {
Response.Write("already in cache");
}
から、私は疑問に思って?メモ、System.runtime.Cachingは正常に動作します。
var cache = System.Runtime.Caching.MemoryCache.Default;
var ic = cache[luCacheKey] as ICollection;
if (ic == null)
{
var filterCriteria = new BinaryOperator("LookupGroup", dsName, BinaryOperatorType.Equal);
var lookups = xpoSession.GetClassInfo(typeof(Lookups));
ic = xpoSession.GetObjects(lookups, filterCriteria, new SortingCollection(), 0, 0, false, false);
var cachePolicy = new System.Runtime.Caching.CacheItemPolicy() { AbsoluteExpiration = DateTime.Now + TimeSpan.FromMinutes(30) };
cache.Add(new System.Runtime.Caching.CacheItem(luCacheKey, ic), cachePolicy);
あなたWiktor第ありがとうございました!それはそれだった。奇妙なことに、他の場所では動作しているようですが、devマシンでは動作していないようです。私は今やるべきコードの置き換えがたくさんあります!再び、すばやい返信をいただきありがとうございます。 Rep ++ – Davery
私たちは逆を持っていました。これはdevマシンの魅力のように働き、生産に失敗しました。何が問題なのかを知るために1日かかりました。 –