Error 500 on IIS 8 / 8.5 with ColdFusion 10/11

If I have an error in my ColdFusion script, I get a 500 error message from IIS instead of ColdFusion. This only happens if I specify the file name in the URL and does not happen if I open the URL without the script name (which will open index.cfm).

For instance:

I can reproduce this problem on my two three ColdFusion platforms:

  • Work: IIS 7.5 with ColdFusion 10 12 update (with updated connector)
  • Not Working: IIS 8 with ColdFusion 10 Update 12 (with updated connector)
  • Not Working: IIS 8.5 with ColdFusion 11

My index.cfm and foobar.cfm:

<!--- provoke a coldfusion error ---> <cfset foo 

My web.config:

 <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <httpErrors errorMode="Custom" existingResponse="PassThrough" /> </system.webServer> </configuration> 

For me, there seems to be a problem with the ColdFusion connector with IIS 8 and IIS 8.5.

+6
source share
1 answer

Well, I finally could fix it.

Problem

I run several web applications each in my own virtual directory on the same IIS site. It turned out that adding existingResponse="PassThrough" to web.config only works partially in virtual directories. Without this setting, I never get any ColdFusion error, and instead I always see an IIS 500 error. If I add existingResponse="PassThrough" to the web.config of the virtual directory, ColdFusion errors will be forwarded only when accessing the site without calling .cfm directly script (for example: example.com/ instead of example.com/index.cfm).

Decision

The decision was easy. I just had to add the existingResponse="PassThrough" parameter to the web.config of the root IIS website, and everything works.

I think this is a bug in IIS 8 and 8.5 since I double-checked it on my IIS 7.5 server and I did not have to add this property to the root site.

+6
source

All Articles