WCF Service
を含むWebロールプロジェクトでSystem.Runtime.Caching.MemoryCache
を使用したいと思います。クラウドWebロールプロジェクトでSystem.Runtime.Caching.MemoryCacheを使用できますか?
Cloud web
ロールプロジェクトでSystem.Runtime.Caching.MemoryCache
を使用できるかどうかは誰にでも教えてください。
「はい」の場合は、メモリやその他の制約を教えてください。
WCF Service
を含むWebロールプロジェクトでSystem.Runtime.Caching.MemoryCache
を使用したいと思います。クラウドWebロールプロジェクトでSystem.Runtime.Caching.MemoryCacheを使用できますか?
Cloud web
ロールプロジェクトでSystem.Runtime.Caching.MemoryCache
を使用できるかどうかは誰にでも教えてください。
「はい」の場合は、メモリやその他の制約を教えてください。
はいできます。
System.Runtime.Cachingへの参照をWebロールプロジェクトに追加し、次に示すようなコードを使用する必要があります(ほとんど何も実行しておらず、ベストプラクティスではありません)。
AzureエミュレータでCloud Web RoleでASP.NET MVCを試してみました。
制限事項 - 必要な値を取得するために使用できるCacheMemoryLimitとPhysicalMemoryLimitの2つのプロパティがあります。これは、バイト単位の制限を示します。 Azure Cloud Servicesのメモリ内キャッシュの観点からこれらの制限を超えているかどうかはわかりません。
private static object _lock = new Object();
private static MemoryCache _cache = new MemoryCache("ThisIsMyCache");
public static object GetItem(string key)
{
lock (_lock)
{
var item = _cache.Get(key);
if (item == null)
{
item = InitiaizeItem(key);
_cache.Set(key, item, new CacheItemPolicy());
}
return item;
}
}
private static object InitiaizeItem(string key)
{
return new { Value = key };
}