Upgrading to Reporting Services 2008 in Visual Studio 2010

Upgrading to SQL Server Reporting Services 2008 requires a few changes in your Visual Studio 2010 projects.

First you need to remove your old Reference to Microsoft Reporting.WebForms (Version 9.0.0.0). Then add the Reference to the Microsoft.Reporting.WebForms for Version 10.0.0.0. Right mouse-click on your project Reference like this –>

Microsoft ReportViewer reference
Add a Reference to the Microsoft.ReportViewer.WebForms Control

If you use any embedded reports on any Web Forms, you need to change the Assembly Reference directive in your .aspx file from 9.0.0.0 to 10.0.0.0
<%@ Register assembly=”Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” namespace=”Microsoft.Reporting.WebForms” tagprefix=”rsweb” %>

For SSRS 2008, you must add Microsofts ScriptManager control to the form.

Visual Studio 2010 Script Manager
Visual Studio 2010 Script Manager

Finally, in your Web.config, all references to the ReportViewer controls 9.0.0.0 need to be changed to 10.0.0.0.
Here is an example web.config (the key areas are bolded) –>

<?xml version=”1.0″?>

<!–

For more information on how to configure your ASP.NET application, please visit

http://go.microsoft.com/fwlink/?LinkId=169433

–>

<configuration>

<system.web>

<compilation debug=”true” targetFramework=”4.0″>

<assemblies>

<add assembly=”System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35″ />

</assemblies>

<buildProviders>

<add extension=”.rdlc” type=”Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” />

</buildProviders>

</compilation>

<httpHandlers>

<add verb=”*” path=”Reserved.ReportViewerWebControl.axd” type = “Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” />

</httpHandlers>

</system.web>

<system.webServer>

<handlers>

<remove name=”ReportViewerWebControlHandler” />

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

</handlers>

</system.webServer>

</configuration>

One last item that may happen, in your IIS Settings, be sure there are no global provider references. Verify this by going to Start->Control Panel->Administrative Tools->Internet Information Services (IIS) Manager.  Then click on your computer name on the left navigation tree, then double-click on Handler Mappings. Just verify there is no mapping for .rdlc files. If there is, you must decide if you want to delete it. Other applications may be using older Reporting Services files. If you are unsure, save a screenshot of the settings, then delete the reference. If there is a problem, reenter the original reference.

You should now have built your project and are successfully running reports in your application with Visual Studio. When you publish up to a website, you may run into another issue. If you have not installed Visual Studio 2010 on your web server (hopefully you did not), you will need to install the Report Viewer runtime. You can download the 2010 version here from Microsoft (http://www.microsoft.com/downloads/en/confirmation.aspx?FamilyID=A941C6B2-64DD-4D03-9CA7-4017A0D164FD). Reboot your web server and you should now have running reports.

One more note:If you receive the following error on your .aspx page with the Report Viewer control:

The request failed with HTTP status 401: Unauthorized.

One cause may be if you are running both your report server and IIS server on the same machine. You need to ensure that the Report Viewer controls on your .aspx pages use the server address, NOT the full qualified domain name (FQDN). Windows performs what is called a “loopback check” and this may be the source of the error. For example, if you are using http://www.YourWebsite.com/reportserver for the  to Report Server Url on the Report Viewer control, change it to the name of the server instead. For example, http://MyWebMachineName/reportserver. Since the report is being rendered on the server itself, this technique should work fine.

Additionally, be sure the user requesting the report has “Browse” permissions for the report granted from within the Report Services Manager.

You should now be ready to take advantage of all of the new features of SSRS 2008!