private void EnsureInitialized(WebHostSettings settings)
{
// standby mode can only change from true to false
// When standby mode changes, we reset all instances
var standbyMode = WebScriptHostManager.InStandbyMode;
if (!standbyMode)
{
if (_activeHostManager == null)
{
_activeScriptHostConfig = CreateScriptHostConfiguration(settings);
_activeHostManager = new WebScriptHostManager(_activeScriptHostConfig, _secretManagerFactory, _eventManager, _settingsManager, settings);
_activeReceiverManager = new WebHookReceiverManager(_activeHostManager.SecretManager);
_standbyHostManager?.Dispose();
_standbyReceiverManager?.Dispose();
_standbyScriptHostConfig = null;
_standbyHostManager = null;
_standbyReceiverManager = null;
_settingsManager.Reset();
}
}
else
{
if (_standbyHostManager == null)
{
_standbyScriptHostConfig = CreateScriptHostConfiguration(settings);
_standbyHostManager = new WebScriptHostManager(_standbyScriptHostConfig, _secretManagerFactory, _eventManager, _settingsManager, settings);
_standbyReceiverManager = new WebHookReceiverManager(_standbyHostManager.SecretManager);
}
}
}