Orchard详解--第二篇 启动
2018-06-22 07:38:56来源:未知 阅读 ()
- Orchard.Web.Global.asax:这个文件主要是包含了应用级事件的处理代码,一般用于ASP.NET程序启动时初始化等等,在Orchard里面也是通过Application_Start事件来对应用程序进行初始化工作(这里的初始化主要是定义HostInitialization、HostBeginRequest和HostEndRequest三个委托,并将其交给Starter去处理)。
1 protected void Application_Start() { 2 RegisterRoutes(RouteTable.Routes); 3 _starter = new Starter<IOrchardHost>(HostInitialization, HostBeginRequest, HostEndRequest); 4 _starter.OnApplicationStart(this); 5 }
1 private static IOrchardHost HostInitialization(HttpApplication application) { 2 var host = OrchardStarter.CreateHost(MvcSingletons); 3 4 host.Initialize(); 5 6 // initialize shells to speed up the first dynamic query 7 host.BeginRequest(); 8 host.EndRequest(); 9 10 return host; 11 } 12 13 static void MvcSingletons(ContainerBuilder builder) { 14 builder.Register(ctx => RouteTable.Routes).SingleInstance(); 15 builder.Register(ctx => ModelBinders.Binders).SingleInstance(); 16 builder.Register(ctx => ViewEngines.Engines).SingleInstance(); 17 }
- 结合WarmupHttpModule,在启动过程中阻止请求,待启动完成后处理请求队列。
- 记录启动过程中出现的错误,如果存在错误会通过监听到的请求事件来重新初始化。
- 创建IoC容器,这里也是最重要的一点,通过Global.asax中定义的HostInitialization,来完成整个基础容器的创建。
3.Orchard.Framework.DefaultOrchardHost.cs:Host是Orchard启动的整个核心,它的启动主要有3个步骤:
- 加载拓展模块。
- 监控拓展模块。
- 创建和激活Shell(多租户)。
1 IEnumerable<ShellContext> BuildCurrent() { 2 if (_shellContexts == null) { 3 lock (_syncLock) { 4 if (_shellContexts == null) { 5 SetupExtensions(); 6 MonitorExtensions(); 7 CreateAndActivateShells(); 8 } 9 } 10 } 11 return _shellContexts; 12 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:ABP框架 - 仓储
下一篇:Linq详细语法
- ASP.NET使用AjaxPro实现前端跟后台交互详解 2020-03-19
- Asp.Net MVC4通过id更新表单内容的思路详解 2020-03-19
- Asp.NET页面中事件加载的先后顺序详解 2020-03-19
- .net下log4net使用方法详解 2020-03-19
- MVC数据验证详解 2020-03-14
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash