我可以在云 Web 角色项目中使用 System.Runtime.Caching.MemoryCache 吗?
Can i use System.Runtime.Caching.MemoryCache in cloud web role project?
我想在包含 WCF Service
.
的 Web 角色项目中使用 System.Runtime.Caching.MemoryCache
谁能告诉我我们是否可以在 Cloud web
角色项目中使用 System.Runtime.Caching.MemoryCache
?
如果是,请告诉我内存和其他限制。
是的,你可以。
您应该将对 System.Runtime.Caching 的引用添加到 Web 角色项目,然后使用类似下面的代码(它几乎什么都不做,当然不是最佳实践)。
刚刚在带有 Azure 模拟器的云 Web 角色中使用 ASP.NET MVC 进行了尝试,它成功了。
关于限制 - 您可以使用两个 CacheMemoryLimit 和 PhysicalMemoryLimit 属性来检索所需的值。它以字节为单位显示限制。我不知道在 Azure 云服务中的内存缓存方面是否有任何限制。
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 };
}
我想在包含 WCF Service
.
System.Runtime.Caching.MemoryCache
谁能告诉我我们是否可以在 Cloud web
角色项目中使用 System.Runtime.Caching.MemoryCache
?
如果是,请告诉我内存和其他限制。
是的,你可以。
您应该将对 System.Runtime.Caching 的引用添加到 Web 角色项目,然后使用类似下面的代码(它几乎什么都不做,当然不是最佳实践)。
刚刚在带有 Azure 模拟器的云 Web 角色中使用 ASP.NET MVC 进行了尝试,它成功了。
关于限制 - 您可以使用两个 CacheMemoryLimit 和 PhysicalMemoryLimit 属性来检索所需的值。它以字节为单位显示限制。我不知道在 Azure 云服务中的内存缓存方面是否有任何限制。
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 };
}