Обработчик HTTP веб-контроля Report Viewer не был зарегистрирован в файле приложения web.config - программирование

Обработчик HTTP веб-контроля Report Viewer не был зарегистрирован в файле приложения web.config

    The Report Viewer Web Control HTTP Handler has not been registered in the application 
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>

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

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

Ответ 1

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

Ответ 2

Не можете ли вы проверить свой 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" />

Ответ 3

Проблема также ушла для меня, когда я изменил пул приложений от Integrated to Classic.

Ответ 4

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

Приложение, с которым я столкнулся, было разработано в 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 и автоматически меняет эти строки в 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>

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

Ответ 5

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

Ответ 6

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

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

Ответ 7

Мы получили эту ту же ошибку из веб-контроля Report Viewer при обновлении до 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

Как только мы установили пакет обновления 1 (SP1) для SQL Server 2016, все сработало.

Ответ 8

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

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