Http-обработчик веб-элемента управления средства просмотра отчетов не зарегистрирован в веб-приложении.конфигурационный файл

    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

эта ошибка идет . Я уже упоминал эту строку в обработчике http, но все еще получаю эту ошибку

<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" />

моя разметка html-страницы выглядит следующим образом

<%@ 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>

раздел сборки web config выглядит следующим образом:

<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>

10 ответов


у меня была такая же проблема. Случилось так, что я поместил процедуру загрузки отчета на Page_Load и не обернул ее в if (!IsPostBack). ReportViewer делает сообщение на странице, и это запускает Page_Load и перезагружает отчет, каким-то образом испортив его. После того, как положить все внутрь if (!IsPostBack), Он работал как шарм.


не могли бы вы проверить web.config для обработчиков, зарегистрированных или нет ReportViewer. его должно быть так

проводник

<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>

также проверьте раздел сборки в вашем web.config на ReportViewer, это должно быть как ниже.

<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" />


проблема также ушла для меня, когда я изменил пул приложений с интегрированного на классический.


эта проблема возникла для меня после того, как я изменил параметр хранимой процедуры, которую вызывал мой запрос, не обновляя набор данных в конструкторе SSRS, поэтому вы можете попробовать это.


последние два дня у меня была та же проблема. Это не ответ на исходный вопрос - просто некоторая дополнительная информация для тех, кто имеет ту же проблему.

приложение, с которым у меня была проблема, было разработано в 2005 году и находится в стадии разработки.

таким образом, он был перенесен с VS 2005 на VS 2008 на VS 2010 и в последнее время на VS 2013. Кажется, именно тогда произошла ошибка. Где-то между .NET framework переключился с .NET 3.5 для .NET 4.

Я думаю (я не проверял), что с .NET 4 Средство просмотра отчетов *.библиотеки DLL поставляются как системные библиотеки. Во всяком случае, это показало мне мой GAC:

enter image description here

только первая, версия 8, была установлена вручную мной (с распространяемым двоичным файлом Reporting Viewer 2005).

Итак, в VS 2013 Resharper думает о версии 11 и автоматически изменяет эти строки в интернете.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>

so long story short: Кажется - по крайней мере, в моем случае - эта ошибка указывает на конфликт версий с библиотеками, используемыми с visual studio и используемыми средой выполнения. Ошибка, данная Microsoft, немного вводит в заблуждение.


Я ничего не изменил в пуле приложений, просто добавил эту строку:

<Add name = "Reserved-ReportViewerWebControl-axd" path = "Reserved.ReportViewerWebControl.axd" verb = "*" type = "Microsoft.Reporting.WebForms.HttpHandler" resourceType = "Unspecified" />

мы получали эту же ошибку из веб-элемента управления средства просмотра отчетов при обновлении до SSRS 2016. Но мы также не могли получить доступ к веб-порталу SSRS - мы получали ошибку 503, которая привела нас сюда: https://support.microsoft.com/en-gb/help/3171040/-http-503-service-unavailable-error-when-you-open-the-ssrs-web-portal-after-you-upgrade-to-ssrs-2016

после установки SQL Server 2016 Service Pack 1 все работало.


Если вы используете службы WCF для получения данных из базы данных, вы можете столкнуться с этой проблемой, даже если вы добавили обработчик HTTP в свой веб.конфигурационный файл.

в этом случае вам также нужно добавить конечные точки службы, поведение и привязки к интернету.config, чтобы заставить вещи работать.


в моем случае следующая строка решила проблему для меня:

<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>

для IIS 7 или более поздней версии

  <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>