I was recently working on a reporting web application that uses the Report Viewer ( ReportViewer ) control that ships with SQL Server Reporting Services (SSRS). The Report Viewer control was rendering perfectly when I was developing using Visual Studio 2008. The trouble started when I published the web application to an IIS 7.0 server. The Toolbar was completely broken and showed up something like this.
<rsweb:ReportViewer AsyncRendering="false" ID="reportViewer" Width="100%" Height="100%" runat="server" SizeToReportContent="True" > </rsweb:ReportViewer>
GET /Reserved.ReportViewerWebControl.axd?OpType=Resource&Version=9.0.30729.1&Name=Microsoft.Reporting.WebForms.Icons.NextPage.gif HTTP/1.1
GET /Reserved.ReportViewerWebControl.axd?OpType=Resource&Version=9.0.30729.1&Name=Microsoft.Reporting.WebForms.Icons.LastPage.gif HTTP/1.1
When you use the Report Viewer Control Visual Studio edits your web.config to map a Http Handler to respond to these requests.
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=184.108.40.206, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
The above entry tells ASP.NET that whenever a call is made to ReportViewerWebControl.axd use the Microsoft.Reporting.WebForms.HttpHandler assembly to execute it.
This mapping is very important because if you remove it the web server will return a 404 “File Not Found” error code because the ReportViewerWebControl.axd does not exist physically on the server.
Strangely when I checked the IIS 7.0 logs for the broken scenario I found that all requests for ReportViewerWebControl.axd had failed with a 404.
With IIS 7.0 there was an architectural change. There were changes to the web.config structure as well. The <httpHandlers> section that was under the <system.web> has now moved to <handlers> under <system.webServer>
Visual Studio had edited the web.config based on the IIS 6.0 model and had made an entry for the Http Handler under the <httpHandler> section. With IIS 7.0 this section is no longer read. So we need to make the proper entries for the Http Handler that handles the calls to ReportViewerWebControl.axd
<add name="ReportViewerWebControl" path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=220.127.116.11, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
IIS 7.0 will now understand that whenever a call is made to ReportViewerWebControl.axd it needs to route it to the Http Handler Microsoft.Reporting.WebForms.HttpHandler
Cross posted from Vijay’s Blog ( http://blogs.msdn.com/vijaysk/archive/2009/01/14/report-viewer-toolbar-does-not-render-properly-on-iis-7-0.aspx )
PingBack from http://www.clickandsolve.com/?p=5995
We've got a box here that chokes on the icons. The box is a win2k3 server and the reportviewer control is 9. I've set the axd app mapping and made sure check file exists is unchecked and it still doesn't work. Any ideas?
Thank you SO much. I'm on the day before a production release and it kept failing on the production server. This solved it.
Our Pre-Prod environment was IIS7 also, but this error didn't occur on it. I'll have to investigate why, but certainly the fix you mentioned above worked for production.
The first time I deployed my .NET web app to IIS 7.0 on Vista Home Premium and requested my report I got the report bar but no report results. I googled the error message and found your post. BAM! you hit it right on the nose. Placing the ReportViewerWebControl as an add name in the handlers tag list of the system.WebServer tag in web app WebConfig file worked. Report displayed as usual with no errors. Thanks!
Thanks! This post help me so much!!
Thank you sir! You really helped me out.
Thanks, just what I needed! (Except I needed an 18.104.22.168 tag.)
<add name="ReportViewerWebControl" path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=22.214.171.124, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
Yes no doubt this is a very helpful and good post.
How can this help us while viewing the reports thru an application attached to SSL. We are not able to view reports when accessed from https.... Appreciate any help
Thank you, I helped me. I was struggling for a week to fix this.
THANKS A TON! My app was working fine without the about until a redirect was involved. I don't know what the redirect did to mess it up, but am sure glad this fixed it. Kudos!
Thanks so much.
This fixed my problem that was a headache for me for many weeks.
It worked for me at the time when I was getting out of my mind on how to fix this. Thanks a lot.
Thanks a Lot!! it helped me tooo
You are awesome!!! Saved me so much time, would have never none to do that.