When using ColdFusion MX while J2EE session variables are enabled, as defined in the ColdFusion Administrator, the session token jsessionid will be used to maintain state. If the application has planned for the possibility that clientside cookies are disabled for some users of the web application, then the application may have to use URLSessionFormat( ) to encode links within the application to maintain state by passing the session token in the URL. If so, the link URL's will have a semicolon delimited parameter appended to the url, in the format page.cfm;jsessionid=1234, for example. With the use of the semicolon in this manner, the jsessionid parameter is becomes part of the request path, not part of the request query string. Although this means of appending the jsession id into the URL is a J2EE standard, this URL format may confuse some webservers, including Microsoft IIS.


Microsoft IIS may report a 404 error for Page Not Found if the ;jsessionid parameter appears in the request URL. When using ColdFusion MX on JRun this can be corrected by setting the ignoresuffixmap property to false in the JRun connector stub configuration file jrun.ini. This file is typically found at the location {cfmx_home}/runtime/lib/wsconfig/1/jrun.ini or {jrun_home}/lib/wsconfig/1/jrun.ini. By setting this property to false, the JRun ISAPI filter will begin to match the URL for known extensions that should be handled by ColdFusion/JRun including *.cfm and *.jsp. When the JRun ISAPI filter matches the extension in a request it will pass the request to the JRun server without letting IIS further parse the URL for extension mapping.


Here is an example from the connector log of JRun ISAPI filter matching a request by the cfm extension, and properly handling the ;jsessionid parameter for the session:

[More]