Citrix Workspace App Restart Issue: Mitigating .NET Runtime Upgrade Impact
If the user endpoint updates the .NET Desktop Runtime, any .NET Core-based app running at the time of the update might exhibit inconsistent behavior. To mitigate this issue, Citrix Workspace App restarts itself.
Behavior of CWA based on CWA version and the .NET version available on the endpoint is summarized below:
CWA 2309 - 2405.12 |
CWA 2409 and higher | |
.NET 6.0 to 8.0.9 |
Default behavior: All CWA Processes are restarted. This will disconnect any running sessions. |
Default behavior: CWA Self service and receiver processes are restarted. Sessions are unaffected and continue to run. User will see a notification post restart stating “Citrix Workspace restarted due to .Net upgrade” |
.NET 8.0.10 and higher |
Same as above default behavior. |
With no registries configured: Default behavior remains the same as above. User will see a notification post restart. With Microsoft(1) and Citrix(2) registry configured: No impact to the end user. No CWA processes are restarted. Seamless .NET version upgrade. Older .NET versions are removed post reboot. |
(1) Microsoft Registry entry to defer older .NET Runtime versions during upgrade
Value Name: RemovePreviousVersion
Value: nextSession
(2) Citrix Registry to disable CWA restart behavior
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Citrix\Dazzle
WorkspaceRestarterEnabled REG_SZ false
Apply both the registry entries mentioned below to avoid CWA restarts during .NET upgrades:
(1) Microsoft registry as mentioned in the article.
Value Name: RemovePreviousVersion
Value: nextSession
(2) Also set registry value WorkspaceRestarterEnabled to false in key
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Citrix\Dazzle
WorkspaceRestarterEnabled REG_SZ false
It is recommended to apply these changes only if dot net runtime 8.0.10 or higher is present.
New .NET upgrade behavior:
On a .NET desktop runtime upgrade, any active application on .NET runtime could end up in an inconsistent state. This is because .NET installs the binaries in a version specific folder, and removes older version folder post upgrade. If an application is active during upgrade and needs any older version DLL, this could result in a crash or unexpected behavior.
CWA behavior on a .NET upgrade:
To avoid inconsistent state, CWA proactively monitors a .NET upgrade and restarts its processes.
Both the behaviors are changed in the later versions mentioned in the article.