The Citrix Desktop Service on a Virtual Desktop Agent (VDA) fails to start. In addition, the following Event IDs are logged in the System Log:
Event ID 7009
Service Control Manager Timeout (30000 milliseconds) waiting for the Citrix ICA Service service to connect.
Event ID 7000
Service Control Manager The Citrix ICA Service service failed to start due to the following error: The service did not respond to the start or control request in a timely fashion.
Solution 1:
Caution! Refer to the Disclaimer at the end of this article before using Registry Editor.
A global value can be configured on the virtual desktop to allow more time for services to initialize and start up.
Note: This value affects all services running on the computer.
You can set the following registry entry to allow more time for services to start and initialize.
Key: HKLM\SYSTEM\CurrentControlSet\Control
Name: ServicesPipeTimeout
Type: DWORD
Value: milliseconds
Example registry file with value set to 45 seconds:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control]
"ServicesPipeTimeout"=dword:0000afc8
The behavior is not altered after modifying this value. Citrix recommends this value for any deployment that might encounter the preceding situations where this can occur.
Solution 2:
Set the "desktop service" on the VDA to "delayed start"
In some environments, the Citrix ICA Service takes longer than the 30 seconds configured by default on a Microsoft Operating System. Anything that slows down the startup of the operating system and service to the point that the default 30 second timeout is reached can cause the issue:
Citrix has been able to reproduce the issue using a XenServer Windows XP Virtual Machine with 50MB RAM and VCPU priority of 4. In this configuration, the error can occur, depending on other factors such as XenServer load.
On a heavily loaded system, the SCM can time out on startup of Citrix ICA Service and before the process has even initialized. When this occurs, the Citrix Desktop Service (workstationagent.exe) fails to start because the service depends on the Citrix ICA Service. In such scenarios, there is no control over the startup failure, as the service startup code has not been called. SCM treats all services equal and does not allow additional time for services with higher start-up overhead, that is, services that use the.NET framework.
The root cause of this issue is the design of Microsoft’s Service Control Manager (SCM) not allowing enough time for services to start up. This can impact the services that use the Microsoft .NET Framework in particular. By design, Microsoft.NET processes require more overhead to start the process. This includes:
Just In Time (JIT) compilation to generate native code for the executable.
Creating sand box environment for the process.
Parsing and processing configuration files.