最近基于abp作的项目在发布到IIS后,第一次被访问异常缓慢,若是时间间隔久再去访问如第一次访问通常缓慢,为了解决这个问题对项目进行了一下系列操做:css
一、优化js、css插件,插件分批加载,充分利用浏览器缓存机制html
二、清理部分不须要的插件web
三、对EF进行预热(基于仓储Repository貌似无效)浏览器
四、IIS预加载优化缓存
1、EF预加热,在Global的Application_Start方法添加如下代码。详细参考服务器
#region EF预加热 using (var dbcontext = new EntityFramework.EmProjectDbContext()) { var objectContext = ((IObjectContextAdapter)dbcontext).ObjectContext; var mappingCollection = (StorageMappingItemCollection)objectContext.MetadataWorkspace.GetItemCollection(DataSpace.CSSpace); mappingCollection.GenerateViews(new List<EdmSchemaError>()); } #endregion
2、IIS预加载优化app
对于IIS8来讲,预加载已作了支持,详细配置参考 、参考二post
不过也提供对IIS7.5的预加载支持,须要下载两个包:appwarmup_x64.msi、ApplicationInitialization for UI优化
appwarmup_x64.msi的下载地址:https://www.iis.net/downloads/microsoft/application-initializationui
ApplicationInitialization for UI下载地址:http://download.csdn.net/download/a66081638/9732676 (须要积分) 、不要积分
1)先安装appwarmup_x64.msi,而后重启服务器
2)再安装ApplicationInitialization for UI
3、IIS配置
一、安装完毕后,能够在iis配置管理页的‘其余’项中有一个‘Application Initialization’
二、双击该图标,进入配置页
1)配置程序池
2)配置站点
3)应用程序池设置中的Idle Time-out设为0
一些参考:
https://www.cnblogs.com/webenh/p/6400558.html
http://www.codeweblog.com/entity-framework-6-%E9%A2%84%E7%83%AD-%E5%90%AF%E5%8A%A8%E4%BC%98%E5%8C%96/