Crystal Reports 2008 / ASP.NET / IIS

Posted: 10-09-2008

If you're reading this, you've fallen victim to one of the following two errors when using Crystal Reports 2008 (or in general) with ASP.NET via IIS. These errors can have any number causes (or, like in my case, combinations of problems), further, depending on version of Crystal Reports your using, it could have multiple fixes in regards to files that need to be registered, etc. I'm going to focus on Crystal Reports 2008 that comes with Visual Studio 2008. I've had no problems with CR2008 except when I run it via ASP.NET in IIS.

  1. Error in File <report path>{65FA673B-B201-468C-BB5F-59501AF0CFBA}.rpt: Operation not yet implemented.
  2. Load report failed.

If I could change anything with most software, it would be more descriptive error messages. I won't go on that rant today though. Instead, I'm going to give detailed instructions on how I fixed the above issues. I searched for the better part of two days trying various fixes that I found over the web... here is how I finally got the end fix.

  1. Permissions to the Windows temp directory were wrong. Here's the problem, the "NETWORK SERVICE" account and the IIS_WPG group didn't have permissions to the temp directory. My system admin didn't want to give either permissions to the temp folder... fair enough, I can understand that viewpoint. So, I created a directory on the server just for Crystal on the computer. I gave the NETWORK SERVICE account and the IIS_WPG group modify permissions (important). I then changed the following registry key, which changes the temp directory Crystal Reports uses from the default to where you specify. The key will likely be empty when you get there... when it's empty, it uses the profile's temporary directory. Here is the key location in the registry, type in your directory using regedit (you can always delete the value if you want to revert): HKEY_LOCAL_MACHINESOFTWAREBusiness Objects10.5Report Application ServerInProcServerTempDir
  2. When you're done with the above, go to the temp directory, run a report from your web page and watch the temp files appear and then disappear (you may need to press F5 to refresh while it's loading). If the reports do not disappear after the Crystal Report finished generating then you need to verify that you're calling the Dispose method on the report object. If you don't call it, the reports will stay locked until the site goes out of memory (yikes). Remember, call Dispose! If you're exporting to an HttpResponse then use a Finally in the Try/Catch around it that calls Dispose so that you're sure it gets called.
  3. Install (or un-install and re-install) the Crystal Reports 2008 merge module. This can be found in the following directory: "C:program filesMicrosoft SDKsWindowsv6.0ABootstrapperPackagesCrystalReports10_5". There are two executables in that directory, one for x86 machines and one for x64 machines. Pick your poison. ;)

Other reasons that could cause the "Operation not yet implemented" error that I didn't have:

  1. The report is using a font that doesn't exist on the server when exporting to a PDF. I found a post suggesting to change to a font that's on the server or make sure that it's a TrueType font.

After all of this, it works. Note, all Crystal Reports generated on the machine will now use that new temporary directory. Enjoy!