最近基于abp做的项目在发布到IIS后,第一次被访问异常缓慢,如果时间间隔久再去访问如第一次访问一般缓慢,为了解决这个问题对项目进行了一下系列操作:
1、优化js、css插件,插件分批加载,充分利用浏览器缓存机制
2、清理部分不需要的插件
3、对EF进行预热(基于仓储Repository貌似无效)
4、IIS预加载优化
一、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
二、IIS预加载优化
不过也提供对IIS7.5的预加载支持,需要下载两个包:appwarmup_x64.msi、ApplicationInitialization for UI
appwarmup_x64.msi的下载地址:https://www.iis.net/downloads/microsoft/application-initialization
ApplicationInitialization for UI下载地址:http://download.csdn.net/download/a66081638/9732676 (需要积分) 、不要积分
1)先安装appwarmup_x64.msi,然后重启服务器
2)再安装ApplicationInitialization for UI
三、IIS配置
1、安装完毕后,可以在iis配置管理页的‘其他’项中有一个‘Application Initialization’
2、双击该图标,进入配置页
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/