最近基於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/