23
    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 配置程序集部分如下:

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

12 回答 12

11

我遇到了同样的问题。发生的事情是我将报告加载例程放在 Page_Load 上,并没有将其包装在if (!IsPostBack). ReportViewer 对页面进行 POST,这会触发 Page_Load 并重新加载报告,以某种方式将其搞砸。把所有东西都放进去后if (!IsPostBack),它就像一个魅力。

于 2012-10-08T13:21:52.453 回答
10

您能否检查您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还要检查for中的组装部分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" />

于 2012-09-19T05:15:39.490 回答
7

当我将应用程序池从集成更改为经典时,这个问题也消失了。

于 2013-12-11T16:18:09.547 回答
1

在我更改了我的查询调用的存储过程的参数后,我出现了这个问题,而没有在 SSRS 设计器中刷新数据集,所以你可以试试这个。

于 2013-09-19T16:12:10.277 回答
1

最近两天我遇到了同样的问题。这并不是对原始问题的真正答案 - 只是为有同样问题的人提供的一些额外信息。

我遇到问题的应用程序已于 2005 年开发,目前仍在开发中。

因此,它已从 VS 2005 移植到 VS 2008 到 VS 2010,最近又移植到 VS 2013。看来这是错误发生的时候。.NET 框架之间的某个地方已从 .NET 3.5 切换到 .NET 4。

我认为(我没有验证)在 .NET 4 中,报表查看器 *.dlls 作为系统库提供。无论如何,这向我展示了我的 GAC:

在此处输入图像描述

只有第一个版本 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 使用的库和使用运行时的库的版本冲突。微软给出的错误有点误导。

于 2015-05-04T16:26:30.143 回答
1

我没有足够的代表来评论现有的答案,但是可能需要将您的应用程序池从集成更改为经典的原因是因为这个 MSDN 条目

使用集成应用程序池,您只需要处理程序部分,使用经典应用程序池,您需要处理程序和 httpHandlers。

于 2019-03-20T09:51:23.660 回答
1

对我来说同样的问题。这个问题对我来说也消失了 1)当我将应用程序池从集成更改为经典时。2)像这样更改HTTP处理程序

<httpHandlers>
 <add verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"   validate="false" />
    </httpHandlers>
于 2020-03-09T07:41:36.120 回答
0

我没有更改应用程序池中的任何内容,只是添加了这一行:

<Add name = "Reserved-ReportViewerWebControl-axd" path = "Reserved.ReportViewerWebControl.axd" verb = "*" type = "Microsoft.Reporting.WebForms.HttpHandler" resourceType = "Unspecified" />
于 2016-11-07T14:02:29.720 回答
0

当我们升级到 SSRS 2016 时,我们从 Report Viewer Web 控件中收到了完全相同的错误。但我们也无法访问 SSRS Web 门户 - 我们收到了一个 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,一切正常。

于 2017-01-26T13:26:15.760 回答
0

如果您使用 WCF 服务从数据库中检索数据,即使您已将 HTTP 处理程序添加到 web.config 文件,您也可能会遇到此问题。

在这种情况下,您还必须将服务端点、行为和绑定添加到 web.config 以使事情正常进行。

于 2017-03-21T10:35:58.637 回答
0

就我而言,以下行为我解决了问题:

<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>
于 2018-03-01T12:10:21.333 回答
0

对于 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>
于 2018-04-01T06:32:59.157 回答