I came across a strange error while setting up a virtual ColdFusion 9 sever (Windows 2008 with IIS 7.5). Whilst loading up a test site I got the following ColdFusion error:
Error Occurred While Processing Request
File not found: /index.cfm
On the face of it, it looks like an obvious fix. Surely there is no file by the name of index.cfm in the root of the folder. Wrong! The file does exist. However, if I was to replace it with a simple index.htm file that wold work without any problems.
Digging a little deeper I took at look at the application.log and exception.log in ColdFusion administrator to see if there were any further clues.
Application.log
"Error","jrpp-8","12/26/15","17:43:11",,"File not found: /index.cfm The specific sequence of files included or processed is: C:\Websites\SampleSite\wwwroot\index.cfm'' "
Exception.log
"Error","jrpp-8","12/26/15","17:43:11",,"File not found: /index.cfm The specific sequence of files included or processed is: C:\Websites\SampleSite\wwwroot\index.cfm'' " coldfusion.runtime.TemplateNotFoundException: File not found: /index.cfm at coldfusion.filter.PathFilter.invoke(PathFilter.java:90) at coldfusion.filter.LicenseFilter.invoke(LicenseFilter.java:27) at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70) at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28) at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38) at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46) at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38) at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:53) at coldfusion.CfmServlet.service(CfmServlet.java:200) at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) at jrun.servlet.FilterChain.doFilter(FilterChain.java:86) at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42) at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46) at jrun.servlet.FilterChain.doFilter(FilterChain.java:94) at jrun.servlet.FilterChain.service(FilterChain.java:101) at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106) at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42) at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286) at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543) at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203) at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320) at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428) at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266) at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
The double single quotes at the end of index.cfm seemed to be very odd. My setup was very basic apart from that fact that the IIS application pool identity was running with its own user. It would seem to suggest this user account could not compile and write to ColdFusion WEB-INF folder.
The ColdFusion service needs to run on this same user account. On the server in Services right click on “ColdFusion 9 Application Server” and select properties. On the “Log On” tab select “This Account:” and enter the username and password used in the application pool identity. Once done don’t forget to restart the service. Reload the website and the error will disappear!