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.
source share