As we all are aware of, Citrix Storefront is fully dependent on IIS to work, but it is really suffering of some perfromance issues that surely most of us who have been testing or implementing it are aware of. So Let’s give Storefront a new perfromance birth by doing the following
Attention! Take a backup of all files you are going to modify before doing this! And Remember that Citrix Systems does not support this!!
1. Enable Socket Pooling (pooledSockets=”on”)
Open your C:\inetpub\wwwroot\Citrix\Storename\Webweb.config file as administrator and chenge pooledSockets=”off” to pooledSockets=”on”
By enabling socket pooling, Storefront maintaines a pool of sockets instead of creating a new socket each time a new user connects to Storefront, this will give a better performance for SSL based traffic.
2. Changing the application pool to always running (Windows Server 2008 R2) – Skip this step if you are on Windows Server 2012 R2 or above
A common issue faced by website administrators is the need to perform “initialization” tasks and “warm up” tasks for a web application.
For example, when Receiver for Web first starts, it makes requests to the Store Service and Authentication Service, both of which are isolated web applications. This means that three web applications have to be initialized before the first request can be handled by Receiver for Web.
The resolution is to have the web applications always running and initialized, by utilizing IIS Application Initialization for IIS 7.5. This enables website administrators to improve the responsiveness to Receiver for Web sites by loading the all supporting web applications before the first request arrives. By proactively loading and initializing all the dependencies, IT Professionals can ensure that their Receiver for Web sites are responsive at all times.
To Configure IIS Application Initialization on Windows Server 2008 R2, install the IIS 7.5 Application Initialization feature. This can be downloaded using the following link
http://www.iis.net/downloads/microsoft/application-initialization
When this has been successfully deployed, complete the following configuration changes:
Open the application host configuration file located at: C:\Windows\System32\inetsrv\config\applicationHost.config.
Configure each Citrix Application Pool at the path: /configuration/system.applicationHost/applicationPools.
Add the startMode attribute, as shown in the following example:
<add name=”Citrix Delivery Services Authentication”
autoStart=”true” managedRuntimeVersion=”v2.0″
managedPipelineMode=”Integrated” startMode=”AlwaysRunning”>
Expected Citrix Application Pools are:
Citrix Delivery Services Authentication
Citrix Delivery Services Resources
Citrix Receiver for Web
Citrix Delivery Services
Configure each Citrix Web Application at the path: /configuration/system.applicationHost/sites.
Add the preloadEnabled attribute, as shown in the following example:
<application path=”/Citrix/Authentication”
applicationPool=”Citrix Delivery Services Authentication”
preloadEnabled=”true”>
Expected Citrix Web Applications are:
/AGServices
/Citrix/Authentication
/Citrix/Roaming
/Citrix/<StoreName>
/Citrix/<StoreName>Web
Save and close the files you just edited.
Verify the configuration changes by running the IISReset command and ensure that there are no errors on restart.
Modify the StoreFront Services web.config files by adding the following to the system.webServer section at path: /configuration/system.webServer.
<applicationInitialization skipManagedModules=”true”>
<add initializationPage=”/endpoints/v1″ />
</applicationInitialization>
The files are found at the following locations:
C:\inetpub\wwwroot\AGServices\web.config
C:\inetpub\wwwroot\Citrix\Authentication\web.config
C:\inetpub\wwwroot\Citrix\Roaming\web.config
C:\inetpub\wwwroot\Citrix\<StoreName>\web.config
Modify the Receiver for Web web.config files, by adding the following to the system.webServer section at path: /configuration/system.webServer.
<applicationInitialization skipManagedModules=”true”>
<add initializationPage=”/Home/Index” />
</applicationInitialization>
The config file is found at: C:\inetpub\wwwroot\Citrix\<StoreName>Web\web.config.
Verify the configuration by running the IISReset command and in Task Manager where a w3wp process exists for each IIS Application Pool.
3. Disable CRL check
You can disable signature verification to prevent the loading delays by completing the following tasks:
- Check IIS for the ASP.net version that is in use with the Desktop Director site.
- Open Aspnet.config for editing in the following directory:
C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727Note: The ASPNET.CONFIG file is located in Framework Directory for the version of the Framework you are using. For example, for a 64-bit ASP.NET application it is:c:\Windows\Microsoft.NET\Framework64\v2.0.50727For a 32-bit application it is:
c:\Windows\Microsoft.NET\Framework\v2.0.50727
- Add the following lines to your Aspnet.config file:
<?xml version=”1.0″ encoding=”utf-8″?>
<configuration>
<runtime>
<generatePublisherEvidence enabled=”false”/>
</runtime>
</configuration>
That’s it, perfrom a IIS Reset or reboot your Storefront server…