由于报表查看器配置错误,报表查看器无法正常工

时间:2017-03-14 07:55:07

标签: c# angularjs asp.net-mvc reportviewer

此处的任何人都可以在我的ASP MVC应用程序上使用Report Viewer服务器控件来解决我的问题。问题是报表查看器的web.config设置总是给我一个错误,即使我已经为报表查看器设置了配置。但是,当我尝试创建一个新的Web应用程序来测试Report Viewer时,工作正常。

这是错误:

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=11.0.0.0, Culture=neutral,
PublicKeyToken=89845dcd8080cc91" /> to the system.web/httpHandlers
section of the web.config file, or add <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" /> to the system.webServer/handlers
section for Internet Information Services 7 or later.

我已经在互联网上做了关于这个问题的其他解决方案,但我仍然一遍又一遍地遇到同样的错误。

在查看开发人员工具后,我发现 Reserved.ReportViewerWebControl.axd 返回404(未找到),即使我在我的web.config中有这个,我认为这会导致报告中的错误观看者。

这是我的web.config:

<system.web>
<httpHandlers>
  <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" validate="false" />
</httpHandlers>
<assemblies>
   <add assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
   <add assembly="Microsoft.ReportViewer.Common, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" /> 
</assemblies>
<buildProviders>
    <add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
</buildProviders>
</system.web>

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

这是我在aspx中的代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ReportViewer.aspx.cs" Inherits="HSESA.Web.Reports.ReportViewer" %>

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="RVForm" runat="server">
        <div>
            <asp:ScriptManager ID="RVScriptManager" runat="server"></asp:ScriptManager>
            <rsweb:ReportViewer ID="reportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt">
               <LocalReport  ReportPath="Reports\AssessmentByRegionReport.rdlc">
               </LocalReport>
        </rsweb:ReportViewer>
        </div>
    </form>
</body>
</html>

提前感谢您的帮助。 ^ _ ^

2 个答案:

答案 0 :(得分:0)

我已经知道如何解决自己的问题了。我只是将报表查看器的配置放在Web.config中<handler>的{​​{1}}内的其他配置之上。

<system.webServer>

它位于<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"/>** <add name="MiniProfiler" path="mini-profiler-resources/*" verb="*" type="System.Web.Routing.UrlRoutingModule" resourceType="Unspecified" preCondition="integratedMode" /> <add name="WebResourceHandler" path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" /> <!--<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />--> <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <add name="GifFiles" path="*.gif" verb="GET,HEAD,POST" type="System.Web.StaticFileHandler" /> <add name="jpg" path="*.jpg" verb="GET,HEAD,POST" type="System.Web.StaticFileHandler" /> <add name="png" path="*.png" verb="GET,HEAD,POST" type="System.Web.StaticFileHandler" /> <add name="js" path="*.js" verb="GET,HEAD,POST" type="System.Web.StaticFileHandler" /> <add name="css" path="*.css" verb="GET,HEAD,POST" type="System.Web.StaticFileHandler" /> <add name="ico" path="*.ico" verb="GET,HEAD,POST" type="System.Web.StaticFileHandler" /> <add name="reg" path="*.reg" verb="GET,HEAD,POST" type="System.Web.StaticFileHandler" /> <add name="aspx" path="*.aspx" verb="GET,HEAD,POST" type="System.Web.UI.PageHandlerFactory" /> <add name="star" path="*" verb="GET,HEAD,POST" type="System.Web.StaticFileHandler" /> <remove name="ExtensionlessUrlHandler-Integrated-4.0"/> <remove name="OPTIONSVerbHandler"/> <remove name="TRACEVerbHandler"/> <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/> </handlers> </system.webServer> 中最后一项的末尾,因为它在保存/构建应用程序时自动放在那里。但是我仍然不知道它在<handler>结束时导致错误的确切原因,但我的猜测是某种方式是web.config无法访问它?如果我错了,如果其他人知道原因我也可以知道,如果我错了,请纠正我。但后来它解决了我的问题:)

答案 1 :(得分:0)

我通过删除“报告数据”标签中所有未在报告中使用的参数解决了该问题。

和web.config是:

<system.webServer>
  <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" />
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
</handlers>
</system.webServer>
<system.web>