A little note up front: This article only refers to running Web Interface 3.0 on IIS web servers. I’m sure that this can be done on other types of web servers too.
Years ago, system administrators were able to run multiple NFuse sites by simply copying the directory structure that NFuse used to another web site in IIS. This enabled organizations to provide separate web interfaces for different purposes.
For example, one NFuse site could be configured with the company’s intranet layout using the java client and forcing the user to log on to an internal domain. Another NFuse site could’ve been configured to do something completely different, such as forcing the user to another domain and to use the Windows client.
When NFuse 1.5 was introduced, administrators were only allowed to create one NFuse site on each server due to the addition of NFuse Java objects. The NFuse Java objects were responsible for authenticating users to the MetaFrame farm and retrieving information about the applications, among other things. They gave administrators a lot more flexibility with NFuse features. Unfortunately, they were only configurable on a server-wide basis. The reason for this was that Java objects main configuration file, “NFuse.conf,” was stored in a centralized folder (most recently “%Program Files%\Citrix\Nfuse”). In one way or another, this configuration was used from NFuse 1.5 to NFuse 1.7, and in Web Interface 2.x.
With the introduction of MetaFrame Presentation Server 3.0, Citrix also released Web Interface 3.0 (WI 3.0). WI 3.0 decentralized the Java objects and places a .conf file (now called “WebInterface.conf”) in the “\Citrix\MetaFrame\conf” folder off the root of each Web Interface site. Because of this decentralization, administrators can now create multiple NFuse / Web Interface sites per server, each with their own settings.
The Nitty Gritty
Creating a second (or third, fourth, ...) Web Interface site is a simple process, although there are several steps to follow. If you’ve performed a default WI 3.0 install, the following information should have you creating multiple sites in no time. For this article, we’ll assume that your IIS and WI installation is standard and that the location of the WI website is under C:\INETPUB\WWWROOT\CITRIX.
To create a second WI 3.0 installation:
1. Stop the IISAdmin service (which will stop the WWW Publishing service).
2. Navigate to c:\INETPUB\WWWROOT\ and copy the Citrix folder to another location, such as C:\WIDefault.
3. Under C:\INETPUB, create a new folder that will contain the new WI site. We’ll call it WEBINT2.
4. Copy the Citrix folder under C:\WIDEFAULT to the new folder created under C:\INETPUB (so you’re folder structure will look like “C:\INETPUB\WEBINT2\CITRIX”)
5. Start the IISAdmin and WWW Publishing services.
6. In IIS Manager, create a new site that points to the new folder you created. For the host header name, you should enter the DNS name that users will use to access your new site. When you expand all the folders in this site, it should look almost identical to the original WI site. Almost, that is, except for a few missing folders with a goofy icon that looks like this: . These icons mean that the directory is an IIS application, and Web Interface uses these directories to build files and sites for different scenarios. In order to use your new WI site, these virtual directories and applications will have to be recreated.
7. In IIS Manager, under your new site, right-click the site name (the level above the Citrix folder) and select New > Virtual Directory.
8. Click Next at the welcome screen, then on the Alias screen, enter the alias of “Scripts” (without quotes). Click Next.
9. At the next screen, enter the path to the SCRIPTS folder, which is C:\INETPUB\SCRIPTS. Click Next, then Finish.
10. Now, right click on the PNAgent folder (under the Citrix folder of your new site in IIS Manager) and select properties.
11. Under the Application Settings section, click the Create button next to Application Name. This should cause the text box to change to PNAgent. Now click OK. You’ll note that the icon for the PNAgent folder has changed from a regular folder icon to the application icon. This is good.
12. Repeat Step 11 for the PNAgentAdmin folder.
13. Next, right-click on the MetaFrame folder and select New > Virtual Directory. Click Next at the Welcome screen and enter the alias of “certificate” (again, no quotes). Click Next.
14. For the path, enter C:\INETPUB\WEBINT2\CITRIX\METAFRAME\SITE and click Next.
15. Click Next again at the Permissions screen, then click Finish.
Now we have to tell IIS what to do when it encounters an ICA file. By default it has no idea what an ICA file is, so it just sends it down to the user's web browser when it's requested. However, the template ICA file used by WI 3.0 actually contains some ASP code, so it needs to be parsed by the IIS ASP engine before it's sent to the client. To do this, you'll need to configure your new IIS virtual directory use a certain ASP processing DLL to process ICA files before they're sent to users. (If you don't do this, your users will receive an error stating "[ApplicationServers] section not found.")
16. Right-click on the virtual folder that you just created and select Properties. Click the Configuration... button.
17. Click Add... and enter “C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll” in the Executable box. In the Extension box, enter “.ica”.
18. In the Verbs section, select Limit To: and enter “GET,HEAD,POST,DEBUG” in the text box. Uncheck the “Verify that file exists” checkbox, and click OK. Click OK two more times to exit the properties window.
19. Repeat steps 13 through 18 for the following virtual directories: default and integrated.
20. Now, right-click on the WIAdmin folder and select Properties. Click the Create button (just like in Step 11). Do the same for the aspexamples folder.
At this point, you have created your second Web Interface site. You can browse to your site by typing http://<site_domain_name>/Citrix/MetaFrame. If you want, you can place a redirect page under the C:\INETPUB\WEBINT2 folder so that you only need to browse to http://<site_domain_name>. (This redirect can be a simple default.asp file with one line of code:
To administer the site, you can browse to http://<site_domain_name>/Citrix/MetaFrame/WIAdmin just like you would for a single site WI environment. You can also edit the WebInterface.conf file directly. The file is located in the \CITRIX\METAFRAME\CONF folder.
There you have it. It’s not exactly painless, but it’s better (and cheaper) than having several servers for your Web Interfaces. As always, I’m interested in hearing your feedback and experiences. You can post them below, or shoot me an email at firstname.lastname@example.org.