Purpose
Many FME Server administrators use IIS as their web server and want this to be the entry point to FME Server. FME Server by default runs its services as java servlets on Apache Tomcat. The steps below explain how to set-up IIS and Apache Tomcat so that a request to IIS (via the standard port 80) gets sent automatically to Apache Tomcat so that they can be handled by FME Server's web services.
Important Note: If you are using IIS 7 or later there is a better approach to this integration using ARR. Please see the article here:
Configuration of IIS 7.5 with ARR 2.0 with Tomcat 7.0 (Windows 7)The steps below are inteneded for users of II6 or earlier, although these steps have been tested with IIS 7.
Before You Begin
- It is assumed that you already have IIS 7 installed and running.
- Download the zip file attached to this article containing sample configuration
- Download the Tomcat Connector from here . At time of writing the correct .dll was found in this download file.
For FME Server 2011 or earlier
- Install a Java virtual machine, either JRE or JDK installed (version 5 or later)
- Install Apache Tomcat Version 5 or 6 (Version 7 users see the note above). DO NOT use port 80 as the Tomcat port as this will conflict with the IIS default port which is port 80
- Install FME Server and enter the Tomcat port for both Web Server and Application Server ports. (we will adjust the web server port for the services in the last step)
- Test FME Server by going to the Web Admin UI (http:<YourHost>:<TomcatPort>/fmeserver. For example http://localhost:8080/fmeserver
FME Server 2012
- Install FME Server 2012 using the custom installer. You can use the installed Apache Tomcat or use your own Apache Tomcat if you have it installe already. Select port 8080 or the application server (or any port other than 80).
- Test FME Server by going to the Web Admin UI (http:<YourHost>:<TomcatPort>/fmeserver. For example http://localhost:8080/fmeserver
Note: If you are used the FME Server 2012 express installer to perform the install, the default web application server which comes bundled with FME Server is actually Tomcat 7. When you see reference to <Tomcat Installed Dir>, this should point to this folder:
<FMEServer Install DIR>\Utilities\tomcat<Tomcat installed Dir>
Steps
Configuration of Apache Tomcat
- Navigate to <Tomcat Installed Dir>\bin folder (<FMEServer Install DIR>\Utilities\tomcat\bin if you are using the FME Server 2012 express installer).
- Create a subfolder named isapi within 'bin'.
- Copy the isapi_redirect_(version).dll into <Tomcat Installed Dir>\bin\isapi\
- Rename the above file to isapi_redirect.dll
- Unzip the downloaded iis_tomcat_samples.zip to a temp folder.
- Copy the isapi_redirect.properties file from the temp folder into <Tomcat Installed Dir>\bin\isapi\
- Open the isapi_redirect.properties file to ensure that paths are set correctly. You may need to edit some paths to reflect the path your Tomcat is installed in.
- Copy the uriworkermap.properties and workers.properties files from temp folder into <Tomcat Installed Dir>\conf\
- Add the contexts for new FME Server application to the uriworkermap.properties file making sure not to include the fmedatadownloadresult folder in this filter. You can exclude this by including !/fmedatadownloadresults/*=wlb e.g.:
/fmeserver/*=wlb/fmeserver=wlb!/fmedatadownloadresults/*=wlb/fmeserver-admin/*=wlb
Note: At this point, it may be necessary to review permissions of added properties and dll files to ensure the IIS service user (usually Network Service) and internet guest user have read/execute permissions on those files.
Configuration of IIS 7
1. Open the Internet Information Services(IIS) manager at Server Manager -> Roles -> Web Server (IIS) on Server Manager.
Browse to <server name> -> Sites.
2. Right click on Default Web Site, then select Add Virtural Directory ...

Figure 1: Add virtual Directory
3.Enter Jakarta for Alias name and select <Tomcat installed Dir>\bin\isapi as directory. Use the "Test Settings" button to ensure the IIS user has access to this directory. Click OK to close the dialog.
4. Right click on Default Web Site and select Edit Permissions ..., make sure Read & execute at the Security tab is allowed.
5. Click OK to close the dialog.
6. Click on Default Web Site, then double click on ISAPI Filters on the Default Web Site Home panel to open the ISAPI Filters panel.
7. Click Add on the Actions panel.

Figure 2: Add ISAPI Filters
8. Enter Jakarta for Filter name, and <Tomcat Installed Dir>\bin\isapi\isapi_redirect.dll as executable. Click OK to close the dialog box.
9. Click on <Server_name>, then Double click on ISAPI and CGI Restrictions on the <Server_name> Home panel to open the ISAPI and CGI Restrictions panel.
10. Click Add on the Actions panel.

Figure 3: Set ISAPI Restriction
11. Enter Jakarta for Description, and add <Tomcat Installed Dir>\bin\isapi\isapi_redirect.dll for ISAPI or CGI path. Click OK to close the dialog.
12. Click on Default Web Site\Jakarta, then double click on Handler Mappings to open the Handler Mappings panel.
13. Select ISAPI-dll, then click Edit... on the Actions panel. If there is not an existing entry for ISAPI-dll you can add one in this panel by clickig Add Script Map on the right of the panel.

Figure 4: Set Handler Mappings
14. Add <Tomcat Installed Dir>\bin\isapi\isapi_redirect.dll for Executable. *.dll for the request path ensure the name is:
ISAPI-dll.
15. Still in the Add Script Map dialog click on Request Restrictions and make sure the Access is set to Execute
16.Click OK to close the dialog. Ensure the ISAPI-dll is now in the "Enabled" state.
17. Restart the Default Web Site by clicking Restart on the Manage Web Site panel.
18. Restart FME Server or if you are using your own Apache Tomcat restart Apache Tomcat
19 You should now be able to access the FME Server Web UI and Web Admin UI without including the Tomcat port in the url. IIS should be forwarding requests to FME Serve automatically. For example you should be able to reach the Web UI like this:
http://YourHost/fmeserver/20. The last step is to modify the URLs for each of the serivces so that they no longer specify the application server port. Go to the Web Admin UI (http://YourHost/fmeserver-admin. Click on the Services tab. Configure each service so that the url no longer includes the port number for the application server - IIS can accept these requests now and will forward them automatically to the service.
Note: If you perform this configuration on a 64-bit OS, you need to enable 32-bit applications through Application Pools under <Server_name> on Server Manager.
Verified on:
- Windows 2008 server R2, Windows 7 Professional;
- IIS 7;
- JRE 6u18
- Tomcat 6.0.20,6.0.29
- isapi_redirect-1.2.30.dll (32 bit) and isapi_redirect-1.2.31.dll (64 bit)
- FME Server 2011 and FME Server 2012