此处的任何人都可以在我的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>
提前感谢您的帮助。 ^ _ ^
答案 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>