I just spent half a day trying to figure out why ColdFusion 10 would not show my cfgraphs. I solved it, but not by the 'usual' means.

I have a production server locked down via the CF10 lockdown guide. It has been chugging along for a few years without any issues.

I was working on some code to generate some reports on some database data. Everything was working fine on my local install of the code; but when I pushed to production my graphs were blank.

The graph image was generated using something similar to this:

view plain print about
1/CFIDE/GraphData.cfm?graphCache=wc50&graphID=Images/2834639300100060.PNG

Because the server is locked down; the CFIDE directory is not located in the root directory of the server. Even if it were, GraphData.cfm does not refer to an actual file, but rather a server mapping.

The first thing I verified was that the graph data was actually being created. I thought that perhaps CF did not have write access to the directory it used to generate the chart files. Look here:

view plain print about
1{cfinstallDirectory}\cfusion\charting\cache

If you see files being generated in that directory, then access it not the problem. It was not for me.

Why was I getting broken image links when trying to load a page with dead graphs?

There are a people with this problem on the web, but most of the fixes did not work for me. Manually created a CFIDE folder and a GraphData.cfm folder did not work for me.

Manually creating an ide.cfm file in the CFIDE/main directory did not work for me.

So, what did work?

It turns out at the IIS level I had blocked a lot of URLs related to CFIDE directory. So, to fix my solution I had to remove these blocks.

Follow these steps:

  1. Open up your IIS Control Panel
  2. Click on Request Filtering
  3. Click on URL. If you have setup IIS to block the CFIDE folders, you'll probably see something like this:

  4. Right click on CFIDE/GraphData and click remove

My graphs immediately started showing up. Like magic!

Sign up for DotComIt's Monthly Technical Newsletter