Speeding Up Web Interface

Posted on 2011/08/16


I was working at a customer site where we had a brand new Web Interface server built on Microsoft Windows Server 2008 R2 with IIS 7, but still had horrible response times. Before I implemented these changes my Web Interface site was taking 20-30 seconds to load and 30-60 seconds to enumerate applications on an unloaded server. After making the changes, the login page loaded in 3-5 seconds after a reboot and enumeration took about 2 seconds. Though both of these changes are available on the internet, I thought I might just put them in a single location for future reference.

The first change comes from the Citrix Forums – disable NetBIOS over TCP/IP for each of the network cards. To disable NetBIOS over TCP/IP, open the Advanced Properties dialog for TCP/IP on each network interface as shown in the screenshot.

DisableNetBIOSoverTCPIP
TCPIP Advanced Settings

Apparently, the need for NetBIOS communication is a prime contributor to the slow enumeration events. Once I made this change the enumerations were lightning fast, but the initial logon page was still slow to load.

In the old days, the slow logon page loading was caused by the .NET Framework not  staying resident in memory; however, with Web Interface 5.4 and IIS 7, the Idle Time Out value on the Web Interface App Pool is set correctly to 0 by default, which keeps the .NET Framework loaded. So I went looking for another solution.

I found the answer at Alexander Ervik Johnsen’s website. (Later I discovered it is also a Citrix KB article.) I made the following changes on both the Microsoft.NET\Framework and Microsoft.NET\Framework64 directories: 

  1. Check in IIS for the ASP.net version that is in use with the Web Interface application pool, which should be version 2.0.50727
  2. Edit the ASPNET.CONFIG file(C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet.config)
  3. Add the following GeneratePublisherEvidence line to the runtime section of the ASPNET.CONFIG file as shown
    <runtime>
    <generatePublisherEvidence enabled=”false”/>
    </runtime>
  4. Run IISRESET for force a reread of the ASPNET.CONFIG file

Once I made those changes to the ASPNET.CONFIG file, my Web Interface login page loaded in about 5 seconds. I was quite surprised at the difference only those two changes made to the response time of the Web Interface servers. I hope you will be too.

Advertisements