Release Procedures: BCF Extensions (AgendaBuilder, PassagePlanner and CompetenceSurfer)
The BCF AgendaBuilder, PassagePlanner and CompetenceSurfer require a separate release procedure than Core. It is a manual process.
Pre-requisite for the live (CA2)/liveanon installation: The Ext CSMART installation must be enabled for the BCF installation (this will make the common ext code for the BCF Extensions available).
Note: the Ext service is not required to run but it doesn’t hurt if it doesCheck out the proper Core production branch on your local machine
Load Core project in Visual Studio
Build the solution in Release mode
Preserve configuration
web.config
:
Take a copy of the liveweb.config
files for each extensions (these contain the live configuration - section<appSettings>
and SQL connection string in<connectionStrings>
). The configuration needs to be carried over to the newweb.config
.Preserve configuration
bin\log4netConfig.xml
:
Take a copy of the livebin\log4NetConfig.xml
files for each extensionsCopy all files and directories (incl.
.cs
files as they don't hurt but would be a pain to manually remove) into the proper location on the server (CA2). The three project folders are:src/MarineLMSExtensions.Web.BCF.AgendaBuilder
src/MarineLMSExtensions.Web.BCF.CompetenceSurfer
src/MarineLMSExtensions.Web.BCF.PassagePlanner
Re-apply configuration
web.config
:
Manually transfer the configuration within the originalweb.config
files into the newweb.config
(<appSettings>
and SQL connection string in<connectionStrings>
.Re-apply configuration
bin\log4netConfig.xml
:
Check if the config has changed (additional settings) and re-apply the previous configuration (i.e.<subject value="Web-Core-BCF AgendaBuilder ERROR:" />
so the emails can be differentiated and located where they are coming fromEnsure that those virtual directories in IIS are pointed to the newly copied folders (Advanced Settings > Physical Path)
At the end, make sure the AgendaBuilder and PassagePlanner do have the file
System.Web.Razor.dll
in their bin directory.
Otherwise, the trace log files of the extensions will log an error on start-up:2021-02-02 15:24:47,323 [ERROR] {301} |Default| - IoCSetup::GetinstallerTypesFromAssembly[PassagePlanner] - Exception while getting types from assembly System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35 LOADER EXCEPTIONS System.IO.FileNotFoundException: Could not load file or assembly 'System.Web.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. File name: 'System.Web.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' WRN: Assembly binding logging is turned OFF. To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. Note: There is some performance penalty associated with assembly bind failure logging. To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog]. LoaderException: System.IO.FileNotFoundException: Could not load file or assembly 'System.Web.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. File name: 'System.Web.Razor, Version=2.0.0.
Release Issue Hints
If one of the extensions fail to load (i.e. internal error), check
Disable custom errors in
web.config
to get a more detailed error (customErrors mode="On"
>"Off"
)Check the Event Viewer > Windows Logs > Application for errors
Has the
web.config
file the proper formatting (i.e. xml tag out of place or closing xml tag missing)?Has the
web.config
all references to dll dependencies? It is possible that the new release has some new dll references which are either missing withinweb.config
or missing from thebin
folder (check Event Viewer and error withcustomErrors = "Off"
).