报表查看器Web控件HTTP处理程序尚未在应用程序的web.config文件中注册

rah*_*rma 21 asp.net httphandler rdlc visual-studio-2008

    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
Run Code Online (Sandbox Code Playgroud)

这个错误即将到来.我已经在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" />
Run Code Online (Sandbox Code Playgroud)

我的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>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

Not*_*ble 11

我遇到了同样的问题.发生了什么事情我把报告加载例程放在Page_Load上,并没有把它包装好if (!IsPostBack).ReportViewer对页面进行POST,这就是触发Page_Load并重新加载报告,不知何故弄乱它.把所有东西放进去后if (!IsPostBack),它就像一个魅力.


May*_*hak 9

你能检查一下你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>
Run Code Online (Sandbox Code Playgroud)

另外,请检查您的装配部分web.configReportViewer,它应该是像下面.

<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" />
Run Code Online (Sandbox Code Playgroud)

  • 在我的例子中,为了解决这个问题,我将应用程序池从Integrated更改为Classic,错误消失了 (2认同)

小智 7

当我将应用程序池从Integrated更改为Classic时,问题也随之消失.

  • 这对我有用,但我想知道为什么?两种模式之间的唯一区别在于它们是如何集成的,因此应用程序可以异步启动(意味着不需要初始请求来触发应用程序启动).但这并不能解释为什么报表查看器cotnrol需要经典模式(至少版本11.0.0.0) (2认同)