Getting Macromedia ColdFusion MX (or JRun) working with IIS6.0 (Windows .NET Server)
After installing Windows .net Server (RC1) I was a little dismayed to see that Macromedia's ColdFusion MX doesn't install properly. You can, however, perform a standalone server install with CFMX which installs, and enables Macromedia's JRun server (an integrated part of CFMX) on port 8500. This, however, won't let you run CF pages in IIS6. This writeup provides information on how to connect JRun to IIS6, and also decribes how to disable JRun's integrated web server. When you're finished with these procedures, you SHOULD be able to run cfm pages in IIS without any problems. My disclaimer: try this at your own risk. While I'm running this setup with no problems, some may experience problems - so this is your warning ;) I don't provide any support, but if you have problems or questions, try emailing me at phyd@phydiux.com, and maybe I can help you out.

Written: 09/08/2002 ~6:30pm.

Getting started...
You'll need to perform the following steps for installation:
Installing CFMX
Stop IIS 6
Registry Modification
JRun Connections
Add new Web Service Extension in IIS 6
Registry Modification (again)
Jrun Server Modification
Installing CFMX
We start out by installing CFMX. Go through the installation, and install CFMX with the Standalone Web server (which uses port 8500.) Yes, I'm sure, you want to install the standalone server. That was simple...
Stop IIS 6.0
you'l now want to open up the IIS6 MMC and stop IIS services

Stop IIS6

Registry Modification
Next, we want to modify the registy (using regedit)

Editing the registry in Windows .NET Server RC1

We want to modify HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\ MajorVersion from 6 to 5. This is the registry value that JRun server looks at when making it's IIS connections. If you don't modify this, JRun's connector service will come up with an error.

modifying DWORD value for IIS6 so that JRun thinks it's IIS5

Jrun Connections
We've installed CFMX, stopped IIS6.0, and modified the registry. Now, it's time for the Jrun connector.

run %cfmxdir%/runtime/bin/wsconfig.exe (be patient, it may take a few seconds to load up, and it opens a dos window and everything)

JRun's WsConfig Utility

next, click on the "add" button, which bring up the Add Web Server Configuration window

Configuring the Web server connector in JRuns WsConfig

Typically, the default settings are appropriate for your installation. make sure that IIS Web Site under the Web Server Properties is set to "All". Now, click on "Advanced settings"

Advanced settings in Jrun's WsCongig

Under IIS Settings, click "Use Application Mappings" and add all extensions shown in the pic above (you'll have to add .cfm and .cfml) in addition, you can also add .cfc if you use that extension at all.
Click "ok" for the Advanced Settings, and then click "ok" in the Add Web Server Configuration window. WSConfig should say something about having to start the IIS Server - click okay, and you should see this:

IIS 6 configured with JRun's WsConfig

Jrun is now configured to work in IIS6.0, but we're not finished yet.

Add new Web Service Extension in IIS6
This is where I come up with the %cfmxdir% variable. anything like %cfmxdir% is the ColdFusion install directory. ;)

Go into the IIS6 MMC snap-in, open up Web Service Extensions, and click on "Add a New Web service extension"
type in a name for your web service extension (Coldfusion MX is a good one), and then type the path to the connector
( %cfmxdir%\runtime\lib\wsconfig\1\jrun.dll ). after that, make sure that extension status is set to allow, then click "ok"

View after adding CFMX to IIS6's web service extensions

Now, IIS is configured to allow that extension to run

Registry Modification (again)
Change the registry back

Editing the Registry so that the major version in IIS is back to 6

Modify HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\ MajorVersion from 5 back to 6.

Editing DWORD value of HKLM\SOFTWARE\Microsoft\InteStp\MajorVersion

Jrun Server Modification
go into control panel/administrative tools\services and shut down all services beginning with "Cold Fusion"
Open up explorer and go to %cfmxdir%\runtime\servers\default\SERVER-INF and open up jrun.xml in notepad search for ".webservice", you should find this:

<service class="jrun.servlet.http.WebService" name="WebService"> <attribute name="port">8500</attribute> <attribute name="interface">*</attribute> <attribute name="deactivated">false</attribute> <attribute name="activeHandlerThreads">10</attribute> <attribute name="minHandlerThreads">20</attribute> <attribute name="threadWaitTimeout">300</attribute> </service>

Change the "deactivated" attribute from "false" to "true"

If you're running multiple websites in IIS, you'll also want to do the following:

search for ".JRunProxyService", you should find this:

<service class="jrun.servlet.jrpp.JRunProxyService" name="ProxyService"> <attribute name="port">51010</attribute> <attribute name="deactivated">false</attribute> <attribute name="activeHandlerThreads">10</attribute> <attribute name="minHandlerThreads">20</attribute> <attribute name="threadWaitTimeout">300</attribute> <!-- set this to false for multi-hosted sites --> <attribute name="cacheRealPath">true</attribute> </service>

change the "cacheRealPath" to "false" as the xml says :) This way, if you're running multiple sites on your IIS server, you won't have caching problems....

go into control panel/administrative tools\services and start all services beginning with "Cold Fusion"

Jrun server now has the internal web server disabled, and doesn't have a caching problem with IIS

You're done!
Make sure IIS is running, make sure that CFMX is in the Web Service Extensions section of IIS, and make sure the ColdFusion services are running. You will have to add .cfm files to your default documents in IIS if you want, and you should be all set!

Update: After writing this all up, I did a search on groups.google.com and found a similar configuration, posted by a person that calls him/herself "j_r"... you can see the here. j_r's version and mine are similar, but his requires access to another installation of ColdFusion MX and isn't quite as detailed.


Appendix:
I'll be adding to this appendix because I've received the same questions over and over again about this installation.

Help! I can't find the ColdFusion Administrator!

Well, you're going to have to remap the ColdFusion Administrator in IIS. Open up IIS, go to the site you want to add the administrator directory to, right click, and click on "New/Virtual Directory..." type the name of the directory you want to create (you're going to want to make it "CFIDE" and then click next - after that, find the path to your CFIDE directory (I THINK it's %cfmxdir%\wwwroot\CFIDE but I could be wrong - I'm doing this all off the top of my head) and then click the finish or okay button. Then, if you can't remember that you need to type http://%your-website.com%/cfide/administrator/ you can always update the link in the ColdFusion MX Folder on your start menu. You'll need to take out the :8500 port, and might have to change localhost to %your-website.com% if you mapped the directory in anything but the "default" IIS entry.

Issue: Can't run connector after applying patches!

Looks like you're going to have to run the setup from the CFMX CD, then get it working with IIS6, and then, finally, use the CFMX updater. This looks like another case of not reading directions (although, I will say I didn't specifically state to not run the CFMX updater.) Try installing CF, then the connector, then FINALLY, the LAST STEP, after you've updated your link on your start menu, run the CFMX updater. I can't guarantee this will work, but it should.

I can't get this to work!

Sorry, I don't know what to tell you. This was written up to work with CFMX Professional with Windows .NET STANDARD SERVER RC1, NOT any other versions. If it happens to work in another version of windows and/or ColdFusion MX, then that's great, but I can't offer help to everyone. Some things I do know people have done wrong include things like this:
  • Not reading directions properly
  • Trying to Install CFMX as an IIS add-on (see: Not reading directions properly)
  • Not being able to get the link in their Coldfusion MX Folder on their start menu to open up the CF Administrator
  • not following the pictures, or not having an understanding of how CF or IIS works.
  • installing CFMX, then patching, then trying to get it to work with IIS6.0