标签:
EF+MVC的网站在第一次打开的时候,速度会很慢;闲置一段时间再次打开,重启应用程序池都会很慢。
程序更新,应用程序池重启、回收后,需要重新加载程序文件。
1、安装Application Initialization
这是IIS8的内置功能,对于IIS7.5,微软提供了一个扩展包来支持这个功能。
Application Initialization Module for IIS 7.5
http://www.iis.net/downloads/microsoft/application-initialization
这个扩展并没有提供操作界面,需要操作界面的话,需要下载第三方插件ApplicationInitializationInstaller
配置应用程序池的StartMode为AlwaysRunning
配置站点开启Preload和DoAppInitAfterRestart
2、ngen生成EF的本地镜像
EF从版本6开始不再默认随.Net Framework安装,程序启动时,EF通过just-in-time compiler将MSIL编译成本地代码,存储在内存中。
使用cmd命令提示符进入项目dll所在目录,一般为bin,运行ngen
32bit
%WINDIR%\Microsoft.NET\Framework\v4.0.30319\ngen install EntityFramework.SqlServer.dll
64bit
%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\ngen install EntityFramework.SqlServer.dll
3、禁用_MigrationHistory
Code First首次访问EF时会访问_MigrationHistory,检查数据库与实体类是否匹配,以保证EF可以正常运行。
Application_Start中加代码Database.SetInitializer<MyContext>(null);来禁用这个功能。
标签:
原文地址:http://www.cnblogs.com/pzpzpop/p/4871461.html