After deploying an application to IIS 7.0 from it’s dev environment ( VS 2008 & the Cassini Web Server ), I noticed that Report Viewer reports stopped displaying correctly. Instead of showing reports, the Report Viewer control only rendered the following:

ReportViewerBroken

After digging around a bit, I discovered the root cause of the issue to be that IIS 7.0 was not displaying resources for the report.  Resources are pulled through a call to Reserved.ReportViewerWebControl.axd, and if I hit that URL directly, I received an IIS-served 404 message. 

After taking a look at the web.config, I noticed that the handler for Report Viewer resources was registered under the <system.web> section of the file, but not under the <system.webserver> section ( used by IIS 7.0 when in Integrated Mode).  To fix the issue, the following handler registration was needed in the web.config:

 
<add name="ReportViewerWebControl" 
     preCondition="integratedMode" 
     verb="*" path="Reserved.ReportViewerWebControl.axd" 
     type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, 
           Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

After adding the registration and refreshing the page, Report Viewer happily displayed the report and it’s associated images:

ReportViewerFixed

- Colin