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:
только первая, версия 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>