IIS manual connector configuration | Adobe ColdFusion

ColdFusion has a web server configuration tool for connecting to external web servers. There can be occasions, however, when the tool doesn’t work properly. If the tool doesn’t work, you can configure the connector manually.

This document includes the steps (updated for CF2023 and CF2021) required to manually configure a connection to IIS. It presumes no connection is configured between IIS and CF, and it discusses creating a single connector for a single website. It also presumes you have enabled the following features for IIS (as configured in the Windows Server Manager on server versions of Windows, or in the “Turn Windows features on or off” in desktop versions of Windows):

  • ISAPI Extensions
  • ISAPI Filters
  • CGI
  • ASP .NET

ColdFusion server connects to IIS (and Apache) through an AJP Connector Port, whose value is identified within ColdFusion’s server.xml file, which you can find in the {CF-HOME}/cfusion/runtime/conf directory.

See the AJP “connector” line to identify the port. In the following example, the port would be 8122:

Connector packetSize="65535" protocol="AJP/1.3" port="8022" redirectPort="8455"... />

In all the configurations below, replace {CF-HOME} with the actual ColdFusion installation directory. (For example, C:/ColdFusion2023 for Windows.)

  1. Create a folder in {CF-HOME}/config/wsconfig/{magic-number} . The term “magic number” refers to an incrementing number (starting at 1) that the web server connector tool would create in that folder. As additional connectors are added, they would be created in another such number with a new number. Again, this document presumes you are creating only one connector for a single web site.

  2. Extract into that folder the IIS connector DLL which can be found within the wsconfig.jar file in {CF-HOME}/cfusion/runtime/lib. (A jar file is essentially a zip, so use any suitable to extra the file.) The IIS 64-bit DLL is in connector/isapi/intel-win64/prebuilt/amd64/isapi_redirect.dll .

  3. Create another file in that folder, {CF-HOME}/config/wsconfig/{magic-number}, naming it isapi_redirect.properties, and copy the content below into it.

    extension_uri= /jakarta/isapi_redirect.dll
    log_file= {CF-HOME}/config/wsconfig/{magic-number}/isapi_redirect.log
    log_level= info
    worker_file= {CF-HOME}/config/wsconfig/{magic-number}/workers.properties
    worker_mount_file= {CF-HOME}/config/wsconfig/{magic-number}/uriworkermap.properties
    iis_buffer_enable= true
    auth_complete= 1
    iis_skip_custom_errors_enable= false
  4. Create uriworkermap.properties under {CF-HOME}/config/wsconfig/{magic-number} and copy into it the content below.

    /cffileservlet/* = cfusion
    /CFFileServlet/* = cfusion
    /rest/* = cfusion
    /restapps/* = cfusion
    /__cf_connector_heartbeat__ = cfusion
    /cfapiresources/* = cfusion
    /*.cfm = cfusion
    /*.CFM = cfusion
    /*.Cfm = cfusion
    /*.cfm/* = cfusion
    /*.CFM/* = cfusion
    /*.Cfm/* = cfusion
    /*.cfml = cfusion
    /*.CFML = cfusion
    /*.Cfml = cfusion
    /*.cfml/* = cfusion
    /*.CFML/* = cfusion
    /*.Cfml/* = cfusion
    /*.cfc = cfusion
    /*.CFC = cfusion
    /*.Cfc = cfusion
    /*.cfc/* = cfusion
    /*.CFC/* = cfusion
    /*.Cfc/* = cfusion
    /*.cfr = cfusion
    /*.CFR = cfusion
    /*.Cfr = cfusion
    /*.jsp = cfusion
    /*.hbmxml = cfusion
    !/CFIDE* = cfusion
  5. Create a workers.properties file under {CF-HOME}/config/wsconfig/{magic-number} and copy into it the content below. Make sure that the port mentioned is the same as the connector port mentioned for protocol “AJP/1.3” in server.xml.

    worker.list=cfusion
    
    heartbeat_interval=30
    heartbeat_limit=90
    
    worker.cfusion.type=ajp13
    worker.cfusion.host=localhost
    worker.cfusion.port=8022
    worker.cfusion.heartbeat_servlet_path=/__cf_connector_heartbeat__
    worker.cfusion.connection_pool_size=500
    worker.cfusion.connection_pool_timeout=60
    worker.cfusion.max_reuse_connections=250
    worker.cfusion.monitoringsecret={cfusion.monitoringsecret}
    worker.cfusion.secret={cfusion.secret}

    The cfusion.monitoringsecret value to be placed above can be found as the secretkey value for the instance in {CF-HOME}/config/instances.xml

    The cfusion.secret value can be found as the secret value found on the AJP connector line in {CF-HOME}/cfusion/runtime/conf/server.xml), as discussed above before step 1.

  6. Open IIS Manager, and in the “Connections” panel on the left, select the website to be connected to ColdFusion. Right-click the site and choose “Add Virtual Directory” to create two  virtual directories.

    • For the “alias” cf_scripts, point it to the “physical path” {CF-HOME}/cfusion/wwwroot/cf_scripts.
    • For the “alias” jakarta, point it to the “physical path” {CF-HOME}/config/wsconfig/{magic-number}.
  7. Select the jakarta virtual directory just created (as now visible in the IIS Connections panel).

    • In the Features View for this jakarta virtual directory, double-click the Handler Mappings icon.
    • In the Actions panel (on the far right), click Edit Feature Permissions.
    • Ensure Execute is selected.
  8. Select again the web site, in the left Connections panel. (The following changes will be done at the site level, whereas the previous step was done for the jakarta virtual directory, alone.)

  9. In the Features view for this site, double-click Handler Mappings, and in the Actions panel on the far right, click Add Script Map. Add script maps for each of the following: cfc, cfm, cfml, cfr, and cfswf.

    In the Add Script Map panel, enter the Request path with a pattern like *.cfc, and a Name with a pattern like cfmHandler, then pointing the Executable (for all of them) to /{CF-HOME}/config/wsconfig/{magic-number}/isapi_redirect.dll/

     

  10. Again at the web site level (in the Connections panel), double-click ISAPI Filters and in the Actions panel click Add. Enter the Filter name as Tomcat and point the Executable at {CF-HOME}/config/wsconfig/{magic-number}/isapi_redirect.dll.

Test your site’s ability to serve a ColdFusion request.

Get help faster and easier

New user?