episerverepiserver-6episerver-6-r2

What does forceBinFolderScan attribute in EPiServerFramework.config file means?


I was studying for EPiServer exam and have read this article about EPiServer initialization: http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Initialization/

It describes how to configure initialization to limit assemblies to be scanned during startup, but there is mentioned forceBinFolderScan attribute which is not described. Examples has it always set to true.

I also found another article which describes how to improve startup time of EPiServer site: http://world.episerver.com/Blogs/Alexander-Haneng/Dates/2011/12/Starting-CMS-6-R2-sites-faster-after-build/

Author says to change that attribute to false, but doesn't explain what it means. Does setting it to false stops scanning assemblies at all or scans them only at some conditions?

I have quite large site and it takes several minutes to load. I have lot of assemblies in bin folder, so wanted to limit scanning only to those which contains some initialization modules or plugins.


Solution

  • Because of Asp.Net build system and app startup optimization algorithms all assemblies may not be loaded in app domain. This may hide some assemblies from EPiServer initialization system which is executed during app start. To avoid this - EPiServer allows you to set this forceBinFolderScan flag to force bin/ folder (and probing folder for v7) scanning for assemblies. If flag is set to true - EPiServer is not asking AppDomain for loaded assemblies - but instead scans the filesystem and loads dlls that are not yet loaded.