SEBWIN-539: Fixed bug where a missing service component would lead to termination of SEB during reconfiguration. This due to the fact that the connection lost event of the service was erroneously still registered for the reconfiguration procedure.

This commit is contained in:
Damian Büchel 2022-01-13 11:33:15 +01:00
parent 87728f8301
commit 43f468dc68

View file

@ -228,6 +228,8 @@ namespace SafeExamBrowser.Runtime
{
if (SessionIsRunning)
{
RegisterSessionEvents();
runtimeWindow.ShowProgressBar = false;
runtimeWindow.UpdateStatus(TextKey.RuntimeWindow_ApplicationRunning);
runtimeWindow.TopMost = Session.Settings.Security.KioskMode != KioskMode.None;
@ -267,7 +269,6 @@ namespace SafeExamBrowser.Runtime
runtimeHost.ClientConfigurationNeeded += RuntimeHost_ClientConfigurationNeeded;
runtimeHost.ReconfigurationRequested += RuntimeHost_ReconfigurationRequested;
runtimeHost.ShutdownRequested += RuntimeHost_ShutdownRequested;
service.ConnectionLost += ServiceProxy_ConnectionLost;
}
private void DeregisterEvents()
@ -275,17 +276,19 @@ namespace SafeExamBrowser.Runtime
runtimeHost.ClientConfigurationNeeded -= RuntimeHost_ClientConfigurationNeeded;
runtimeHost.ReconfigurationRequested -= RuntimeHost_ReconfigurationRequested;
runtimeHost.ShutdownRequested -= RuntimeHost_ShutdownRequested;
service.ConnectionLost -= ServiceProxy_ConnectionLost;
}
private void RegisterSessionEvents()
{
service.ConnectionLost += ServiceProxy_ConnectionLost;
sessionContext.ClientProcess.Terminated += ClientProcess_Terminated;
sessionContext.ClientProxy.ConnectionLost += ClientProxy_ConnectionLost;
}
private void DeregisterSessionEvents()
{
service.ConnectionLost -= ServiceProxy_ConnectionLost;
if (sessionContext.ClientProcess != null)
{
sessionContext.ClientProcess.Terminated -= ClientProcess_Terminated;