IIS7启动优化

时间:2021-10-13 08:11:55

最近基于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预加载优化

对于IIS8来说,预加载已做了支持,详细配置参考 、参考二

不过也提供对IIS7.5的预加载支持,需要下载两个包:appwarmup_x64.msi、ApplicationInitialization for UI

appwarmup_x64.msi的下载地址:https://www.iis.net/downloads/microsoft/application-initialization

IIS7启动优化

ApplicationInitialization for UI下载地址:http://download.csdn.net/download/a66081638/9732676 (需要积分) 、不要积分

1)先安装appwarmup_x64.msi,然后重启服务器

2)再安装ApplicationInitialization for UI

三、IIS配置

1、安装完毕后,可以在iis配置管理页的‘其他’项中有一个‘Application Initialization’

IIS7启动优化

2、双击该图标,进入配置页

IIS7启动优化

1)配置程序池

IIS7启动优化

2)配置站点

IIS7启动优化

3)应用程序池设置中的Idle Time-out设为0

IIS7启动优化

一些参考:

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/