来源:蜘蛛抓取(WebSpider)
时间:2015-01-03 05:50
标签:
手机缓存是什么意思
域名首选平台,注册模板提示已加入到白名单是什么意思?_百度知道
域名首选平台,注册模板提示已加入到白名单是什么意思?
注册个模板我登陆域名首选平台账号,注册完它说“已加入到白名单”?我那模板现在删不了,更修改不了,请问这是什么意思
提问者采纳
都要先认证自己的模板,现在要注册CN域名你提到的应该是域名中国,这样你可以使用这个白名单注册CN域名。 白名单模板是原则上是不可以修改的,因为那些信息是认证过的,通过审核的认证模板就是白名单模板
其他类似问题
域名的相关知识
其他2条回答
一定要找国内最大的服务商,小服务商不安全
一定要找国内最大的服务商,小服务商不安全,这些小服务成立时间很短,经营管理还没有稳定下来;他们只是简单地在电信租几台服务器就开始卖虚拟主机和企业邮箱了,虽然更便宜,但是不稳定,会使您的网站经常无法访问;更糟糕的是他们卖给您企业邮箱经常无法收发信件,从而严重影响了您公司的形象及业务往来!
万网是中国最大的域名及主机服务商,建议到万网最大的核心代理商之一今日建站申请,一是安全稳定,二是价格优惠,三是服务好。我们已为15000多家用户提供了近6年优秀服务,更安全,更稳定。联系方式请点击我的用户名——用户资料 。
210元建站方案,可先免费试用15天。包括:国际顶级域名(60元/年)、速成网站普及型(500M,150元/年)、正规备案服务等。会打字就会建网站,操作简单。具有基本网站功能:商品展示&发布管理、酷炫图文工具、文章管理、留言本、流量统计、网站SEO等
万网DIY M邮箱(10M/个,10个起售):24元/年
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁查看: 88|回复: 2
最后登录注册时间阅读权限20精华0帖子
QQ野人, 积分 147, 距离下一级还需 3 积分
性别男幸福币0 经验133 钻石0 帖子
未加入白名单是什么意思?游戏一直在准备,进不去
最后登录注册时间阅读权限100精华0帖子
性别男幸福币0 经验7260 钻石15 帖子
您好,目前游戏是在维护中的,维护时间暂时是到早上8点。
亲们,在游戏中遇到问题,可及时点击“客服”联系,或致电:020-,我们的客服24小时提供服务!
最后登录注册时间阅读权限10精华0帖子
QQ小野人, 积分 48, 距离下一级还需 2 积分
性别男幸福币0 经验47 钻石0 帖子
枪林-陌路 发表于
您好,目前游戏是在维护中的,维护时间暂时是到早上8点。
我怎么到现在还显示“未加入白名单”,一直在准备数据进不去
腾讯官方授予,版主为所对应的版面抱有十足的热情活力,认真负责,注重团队合作精神
Powered by浏览器清理缓存时的时候怎样设置白名单啊?_百度知道
浏览器清理缓存时的时候怎样设置白名单啊?
我用的是猎豹浏览器,金山卫憨搐垛短艹的讹痊番花士自动清理电脑垃圾和缓存的时候经常把我的三国杀(OL) 的账号密码清理了,请问怎样才不清理三国杀的账号密码呢?
提问者采纳
你可以勾选不清理浏览器的缓存就可以了,因为你的三国杀账号一般都是Session标志的保憨搐垛短艹的讹痊番花存在电脑里的,你每次清除都会把这些清楚点
提问者评价
其他类似问题
3人觉得有用
白名单的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.003 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.002 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益您现在的位置: &
EF Code First:二级缓存(1)
EF Code First:二级缓存(1)
一、前言
今天我们来谈谈EF的缓存问题。
缓存对于一个系统来说至关重要,但是是EF到版本6了仍然没有见到有支持查询结果缓存机制的迹象。EF4开始会把查询语句编译成存储过程缓存在Sql Server中,据说EF6中对此做了改进,会把Linq To Entities 的查询条件直接编译缓存在EF中。但是这些都是只是对查询条件做了缓存,而不是缓存查询的结果集(DbSet.Find(object key)那个虽然走了DbSet.Local数据集,但也仅支持通过主键查找单个实体的情况,很有局限性),没有达到我们想要的效果。
EF不加缓存功能,可能也有另外的考虑吧,这里不去猜测。虽然EF团队没有在EF中加入缓存功能,但已经给出的缓存功能的扩展,这就是Community Entity Framework Provider Wrappers,这个扩展的工作原理由下图可以清晰的了解:
该扩展提供了跟踪SQL运行日志与SQJ结果集缓存的功能,这里,我们只用到它的缓存功能来为EF建立二级缓存的支持。
二、缓存设计
(一) 引用EFProviderWrappers
如下图,在NuGet中只提供了Entity Framework Provider Wrapper Toolkit(基础类库)与Entity Framework Tracing Provider(日志跟踪)的下载,很遗憾的并没有提供 Entity Framework Caching Provider(缓存)。
我们只能自己动手来引用了,这里提供几种思路:
到&下载代码,自行编译,然后在项目ponent.Data项目中手动引用EFProviderWrapperToolkit.dll与EFCachingProvider.dll文件。
EFProviderWrapperToolkit由NuGet下载,EFCachingProvider手动引用。
我是觉得两种思路都挺麻烦的,这个扩展的代码貌似已经不更新了(3/18/2011),而且在ponent.Data中额外的引用两个程序集也是个麻烦事,于是我用下面的方法来引用:
在ponent.Data项目中新建两个文件夹,把以上源代码中的两个工程以文件夹的形式包含到项目中。
这样,似乎更干净利落,如图:
(二) 缓存代码分析及整合
1. 关键代码简介
在EFCachingProvider中,我们要用到的核心类有三个:
ICache:缓存缓存基类,系统中实现了一个内存缓存类(InMemoryCache),适用于单台服务器的缓存实现,如果要实现分布式缓存,可以从这个基类进行扩展。
InMemoryCache:内存缓存实现类,内部使用了一个Dictionary&string, CacheEntry&作为缓存容器,以查询的SQL语句及参数的连接字符串(或其MD5值)为键(EFCachingCommands.cs类中定义)。还包含了缓存命中、缓存项数量等数据的统计及缓存清理功能。
CachingPolicy:缓存策略基类,定义了当前实体是否可缓存(CanBeCached)、定义缓存缓存数(GetCacheableRows)、缓存项滑动过期与绝对过期时间(GetExpirationTimeout)等功能,并默认了绝对过期时间为永不过期(DateTime.MaxValue)。
NoCachingPolicy:不缓存策略,禁用缓存功能。
CacheAllPolicy:缓存所有数据策略,缓存项最大数量为int.MaxValue。
CustomCachingPolicy:自定义缓存策略,使用了CacheableTables与NonCacheableTables两个集合来表示数据类型是否可缓存的白名单与黑名单,这两个名单将在重写的CanBeCached方法中作为类型是否可缓存的验证依据。
EFCachingConnection:此类定义了类型为ICache,CachingPolicy的两个属性,分别用于接收上面据说的两个扩展点。
2. 应用缓存扩展
EF的DbContext上下文类有一个重载
public DbContext(DbConnection existingConnection, bool contextOwnsConnection) { }
需要的是DbConnection参数,而EFCachingConnection正好是派生自DbConnection的,我们只需要构建一个EFCachingConnection对象作为参数去构造DbContext派生类的对象,即可完成缓存功能的注入(如本篇第一张图所示)。这里,缓存专用的DbContext派生类只需要派生自原项目中定义的EFDbContext类。
namespace&ponent.Data & { & ///&&summary& ///&&&&&启用缓存的自定义EntityFramework数据访问上下文 ///&&/summary& &&&&[Export(&EFCaching&,&typeof&(DbContext))] & publicclass&EFCachingDbContext&:&EFDbContext & &&&&{ & privatestaticreadonly&InMemoryCache&InMemoryCache&=&new&InMemoryCache(); & public&EFCachingDbContext() & &&&&&&&&&&&&:&base(CreateConnectionWrapper(&default&))&{&} & public&EFCachingDbContext(string&connectionStringName) & &&&&&&&&&&&&:&base(CreateConnectionWrapper(connectionStringName))&{&} & ///&&summary& ///&&&&&由数据库连接串名称创建连接对象 ///&&/summary& ///&¶m&name=&connectionStringName&&数据库连接串名称&/param& ///&&returns&&/returns& privatestatic&DbConnection&CreateConnectionWrapper(string&connectionStringName) & &&&&&&&&{ & &&&&&&&&&&&&PublicHelper.CheckArgument(connectionStringName,&&connectionStringName&); & string&providerInvariantName&=&&System.Data.SqlClient&; & string&connectionString&=& & &&&&&&&&&&&&ConnectionStringSettings&connectionStringSetting&=&ConfigurationManager.ConnectionStrings[connectionStringName]; & if&(connectionStringSetting&!=&null) & &&&&&&&&&&&&{ & &&&&&&&&&&&&&&&&providerInvariantName&=&connectionStringSetting.ProviderN & &&&&&&&&&&&&&&&&connectionString&=&connectionStringSetting.ConnectionS & &&&&&&&&&&&&} & if&(connectionString&==&null) & &&&&&&&&&&&&{ & throw&PublicHelper.ThrowComponentException(&名称为&&&+&connectionStringName&+&&&数据库连接串的ConnectionString值为空。&); & &&&&&&&&&&&&} & string&wrappedConnectionString&=&&wrappedProvider=&&+&providerInvariantName&+&&;&&+&connectionS & &&&&&&&&&&&&EFCachingConnection&connection&=&new&EFCachingConnection & &&&&&&&&&&&&{ & &&&&&&&&&&&&&&&&ConnectionString&=&wrappedConnectionString, & &&&&&&&&&&&&&&&&CachingPolicy&=&CachingPolicy.CacheAll, & &&&&&&&&&&&&&&&&Cache&=&InMemoryCache & &&&&&&&&&&&&}; & return& & &&&&&&&&} & &&&&} & }&
这里缓存策略使用了缓存所有数据(CacheAllPolicy)的策略,在实际项目中,最好自定义缓存策略,而不要使用这个策略,以免服务器内存被撑爆。
我们在应用程序配置(Web.Config或App.Config)中,添加一个名为&EntityFrameworkCachingEnabled&的AppSettings节点,用来进行启用/禁用缓存的开关配置。
&appSettings& &&&... & &addkey=&EntityFrameworkCachingEnabled&value=&true&/& &&&... & &/appSettings&
另外,缓存扩展还需要我们在配置文件中添加如下节点的配置:
&system.data& &DbProviderFactories& &addname=&EF&Caching&Data&Provider&invariant=&EFCachingProvider&description=&Caching&Provider&Wrapper&type=&EFCachingProvider.EFCachingProviderFactory,&ponent.Data&/& &addname=&EF&Generic&Provider&Wrapper&invariant=&EFProviderWrapper&description=&Generic&Provider&Wrapper&type=&EFProviderWrapperToolkit.EFProviderWrapperFactory,&ponent.Data&/& &/DbProviderFactories& &/system.data&
再来看看,怎样使用&EntityFrameworkCachingEnabled&配置来控制缓存功能的开关。我们的设计中,DbContext对象的注入点为如下所示的Context属性:
所以,我们只需要在UnitOfWorkContextBase的派生类中读取&EntityFrameworkCachingEnabled 进行切换即可。
namespace&ponent.Data & { & ///&&summary& ///&&&&&数据单元操作类 ///&&/summary& &&&&[Export(typeof&(IUnitOfWork))] & publicclass&EFRepositoryContext&:&UnitOfWorkContextBase & &&&&{ & ///&&summary& ///&&&&&获取&当前使用的数据访问上下文对象 ///&&/summary& protectedoverride&DbContext&Context & &&&&&&&&{ & get &&&&&&&&&&&&{ & bool&secondCachingEnabled&=&ConfigurationManager.AppSettings[&EntityFrameworkCachingEnabled&].CastTo(false); & return&secondCachingEnabled&?&EFCachingDbContext.Value&:&EFDbContext.V & &&&&&&&&&&&&} & &&&&&&&&} & &&&&&&&&[Import(&EF&,&typeof&(DbContext))] & private&Lazy&EFDbContext&&EFDbContext&{&&&} & &&&&&&&&[Import(&EFCaching&,&typeof(DbContext))] & private&Lazy&EFCachingDbContext&&EFCachingDbContext&{&&&} & &&&&} & }&
注意,因为EFDbContext与EFCachingDbContext两个属性只能同时用到其中之一,导入需要使用Lazy&&类型来包装,这样没用到的属性就不会实例化了。
下面,我们来测试一下缓存功能是否生效,就用上篇的那个翻页列表吧。判断标准为SQL Server Profiler是否有SQL语句执行。为方便演示,这里在列表的下方显示当前的时间,以便与SQL Server Profiler中的时间进行匹配。
第1页不计。
点击第2页,执行了查询:
点击第3页,执行了查询:
再回到第2页,没有执行查询:
点击第4页,执行了查询:
结论:重复第2页的时候,数据已经缓存了,没有读数据库查询数据,说明缓存已经生效了。
最后要提示的一点:
带缓存的上下文不能担当生成数据库的职责,因此在第一次运行生成数据库的时候,必须关闭缓存。
三、源码获取
为了让大家能第一时间获取到本架构的最新代码,也为了方便我对代码的管理,本系列的源码已加入微软的开源项目网站 ,地址为:
&&&主编推荐
&&&热门试卷
&&&最新视频
&&&热门阅读
&&&最新问答
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-