Orchard源碼分析(5.2):BeginRequest事件處理(DefaultOrchardHost.BeginRequest方法)

來源:互聯網
上載者:User
BeginRequest事件處理的作用是確保所有Shell已經載入,或者在擴充有變化的時候重新載入。         void IOrchardHost .BeginRequest() {            Logger.Debug( "BeginRequest");            BeginRequest();        }          protected virtual void BeginRequest() {            // Ensure all shell contexts are loaded, or need to be reloaded if            // extensions have changed            MonitorExtensions();            BuildCurrent();             StartUpdatedShells();        }通過對IOrchardHost.Initialize方法的分析對MonitorExtensions和BuildCurrent方法就不陌生了。這裡主要關注一下StartUpdateShells方法:         void StartUpdatedShells() {            lock (_syncLock) {                if (_tenantsToRestart.Any()) {                    foreach (var settings in _tenantsToRestart.Distinct().ToList()) {                         ActivateShell(settings);                    }
                    _tenantsToRestart = Enumerable.Empty<ShellSettings >();                }            }        }_tenantsToRestart是一個ShellSettings的集合:         private IEnumerable <ShellSettings> _tenantsToRestart;    該 方法的作用是重新啟用Shell。在Orchard中,提出子網站(Tenant)的概念,目的是為了增加網站密度,即一個應用程式定義域可以有多個子網站。 Shell是子網站(Tenant)級的單例,換句話說Shell代表了子網站。當某些對Orchard的配置改變,而這種改變只是針對某個或某些 Shell,沒必要重新啟動整個應用程式的時候,可以通過這種方式來重新啟用Shell。舉個形象點的例子,我們在Windows安裝或更新應用程式的 後,有時候我們需要重啟作業系統,而有的時候我們只需要重新啟動應用程式就可以了。關於Shell,我們有專門的篇幅來介紹,包括Shell是什麼及其作用、更詳細建立及啟用操作分析。相互關聯類型:Orchard.Environment.DefaultOrchardHost : IOrchardHost

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.