sqlreporting-servicesreportviewer

Report Viewer 10.0.0.0 issue rendering reports


I'm getting an exception when this line is executed:

reportViewerControl.ServerReport.ReportServerCredentials = new ReportServerCredentials();

The exception is

Entry point was not found.; Function = Void Process(); Exception = Exception Messages: Entry point was not found. | Stack: at Microsoft.Reporting.WebForms.IReportServerCredentials.get_ImpersonationUser() at Microsoft.Reporting.WebForms.ServerReport.OnCredentialsChanged(IReportServerCredentials credentials) at Microsoft.Reporting.WebForms.ServerReport.set_ReportServerCredentials(IReportServerCredentials value)

SSRS is on a different server than IIS.

I have an account on the SSRS server who is a member of the SQL Reporting Services user group.

I'm able to directly browse to my Report Server Web Service URL (from the web server), supply the credentials from the account mentioned above, and successfully run reports.

I recently upgraded from 9.0.0.0 to 10.0.0.0. This was not an issue with 9.

I noticed that when I installed Microsoft Report Viewer 2010 Redistributable Package on the server hosting SSRS, the GAC didn't contain an entry for Microsoft.ReportViewer.WebDesign or Microsoft.ReportViewer.Design.

Any ideas on how to correct this exception?


Solution

  • This resolution is a bit delayed, but hopefully it will still save someone some time.

    Our Report Viewer (the tool used to render the reports) was upgraded from 9.0.0.0 -> 10.0.0.0. When the Report Viewer is called, the 9.0.0.0 assemblies are attempted resulting in the exception:

    Exception Messages: Entry point was not found

    Which is an exception "that is thrown when an attempt to load a class fails due to the absence of an entry method" (http://msdn.microsoft.com/en-us/library/system.entrypointnotfoundexception.aspx).

    The quick solution for me was to add an entry in the web.config that binds and redirects the assembly requests for 9.0.0.0 to 10.0.0.0. The code block below is an example of this. It needs to be in the dependentAssembly section:

        <dependentAssembly>
            <assemblyIdentity name="Microsoft.ReportViewer.Common" publicKeyToken="B03F5F7F11D50A3A"/>
            <bindingRedirect oldVersion="9.0.0.0" newVersion="10.0.0.0"/>
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="Microsoft.ReportViewer.Webforms" publicKeyToken="B03F5F7F11D50A3A"/>
            <bindingRedirect oldVersion="9.0.0.0" newVersion="10.0.0.0"/>
        </dependentAssembly>