The Report Viewer Web Control HTTP Handler has not been registered in the application's
web.config file. Add <add verb="*" path="Reserved.ReportViewerWebControl.axd" type =
"Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> to the system.web/httpHandlers section of the web.config file
Cette erreur est à venir. J'ai déjà mentionné cette ligne dans le gestionnaire http mais j'obtiens toujours cette erreur
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=0000000000000000" validate="false" />
mon balisage de page html est comme suit
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Button ID="btnsubmit" runat="server" OnClick="GenerateReportButton_Click" />
<rsweb:ReportViewer ID="ReportViewer1" runat="server">
</rsweb:ReportViewer>
</asp:Content>
La section des assemblages de configuration Web est la suivante:
<assemblies>
<add Assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add Assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add Assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add Assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add Assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add Assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add Assembly="Microsoft.ReportViewer.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
</assemblies>
J'avais le même problème. Ce qui s’est passé, c’est que j’ai mis la routine de chargement de rapport sur Page_Load et ne l’ai pas enveloppé dans if (!IsPostBack)
. ReportViewer crée un POST sur la page, ce qui déclenchait Page_Load et recharge le rapport, ce qui le perturbe. Après avoir tout mis dans if (!IsPostBack)
, cela a fonctionné à merveille.
Pourriez-vous vérifier votre web.config
pour les gestionnaires enregistrés ou non pour ReportViewer
. sa devrait être comme ça
Gestionnaire
<handlers>
<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>
Vérifiez également la section Assembly de votre web.config
pour ReportViewer
, ce qui devrait être comme ci-dessous.
<assemblies>
<add Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
<add Assembly="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
Le problème a également disparu pour moi lorsque j'ai modifié le pool d'applications d'Integré à Classic.
Les deux derniers jours, j’ai eu le même problème… .. Ce n’est pas vraiment une réponse à la question initiale, mais quelques informations supplémentaires pour ceux qui ont le même problème.
L'application avec laquelle j'ai eu le problème a été développée en 2005 et est encore en développement.
Donc, il a été porté de VS 2005 à VS 2008 à VS 2010 et dernièrement à VS 2013. Il semble que ce soit à ce moment-là que l'erreur s'est produite . Quelque part entre le framework .NET est passé de .NET 3.5 à .NET 4.
Je pense (je n'ai pas vérifié) qu'avec .NET 4, le visualiseur de rapports * .dlls est fourni en tant que bibliothèques système. Quoi qu'il en soit, cela m'a montré mon GAC:
Seul le premier, la version 8, a été installé manuellement par moi-même (avec le binaire redistribuable de Reporting Viewer 2005).
Ainsi, dans VS 2013, Resharper pense à la version 11 et modifie automatiquement ces lignes dans web.config.
<httpHandlers>
<!-- this is the correct one (if using Report Viewer 2005 / 8.0.0.0 -->
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
</httpHandlers>
<httpHandlers>
<!-- this is the wrong one inserted during the update (or maybe Resharper) -->
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
En résumé: Il semble - du moins dans mon cas - que cette erreur indique un conflit de version avec les bibliothèques utilisées avec Visual Studio et celles utilisant un environnement d'exécution. L'erreur donnée par Microsoft est un peu trompeuse.
Ce problème s'est posé à moi après que j'ai modifié le paramètre de la procédure stockée que ma requête appelait sans actualiser l'ensemble de données dans le concepteur SSRS. Vous pouvez donc essayer.
Pour IIS 7 ou version ultérieure
<system.webServer>
<handlers>
<add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
</handlers>
</system.webServer>
Nous obtenions exactement la même erreur du contrôle Web Report Viewer lors de la mise à niveau vers SSRS 2016. Nous ne pouvions pas non plus accéder au portail Web SSRS. Une erreur 503 nous entraînait: https://support.Microsoft.com/en-gb/help/3171040/-http-503-service-unavailable-error-when-yen- vous-open-the-ssrs-web-portal-after-you-upgrade-to-ssrs- 2016
Une fois que nous avons installé SQL Server 2016 Service Pack 1, tout a fonctionné.
Si vous utilisez les services WCF pour récupérer des données de la base de données, vous pouvez être confronté à ce problème même si vous avez ajouté le gestionnaire HTTP à votre fichier web.config.
Dans ce cas, vous devez également ajouter les points de terminaison du service, les comportements et les liaisons au web.config pour que tout fonctionne correctement.
Dans mon cas, la ligne suivante a résolu le problème pour moi:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
</handlers>
</system.webServer>
Je n'ai rien changé dans le pool d'applications, juste ajouté cette ligne:
<Add name = "Reserved-ReportViewerWebControl-axd" path = "Reserved.ReportViewerWebControl.axd" verb = "*" type = "Microsoft.Reporting.WebForms.HttpHandler" resourceType = "Unspecified" />