【问题标题】:Report is loaded but blank page is shown报告已加载但显示空白页
【发布时间】:2012-11-27 10:50:14
【问题描述】:

我正在报告 here 的确切问题,并且一切似乎都正常。 这是我的 web.config 部分:

<httpHandlers>
  <remove verb="*" path="*.asmx" />
  <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <add verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" />
  <add verb="*" path="Reserved.ReportViewerWebControl.axd" type ="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</httpHandlers>
<handlers>
  <remove name="WebServiceHandlerFactory-Integrated" />
  <remove name="ScriptHandlerFactory" />
  <remove name="ScriptHandlerFactoryAppServices" />
  <remove name="ScriptResource" />
  <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="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>

我得到一个空白页面,当我查找页面的源代码时看到此错误消息:

<h2>
        Report Viewer Configuration Error
</h2><p>The Report Viewer Web Control HTTP Handler has not been registered in the application's web.config file.  Add &lt;add verb=&quot;*&quot; path=&quot;Reserved.ReportViewerWebControl.axd&quot; type = &quot;Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&quot; /&gt; to the system.web/httpHandlers section of the web.config file, or add &lt;add name=&quot;ReportViewerWebControlHandler&quot; preCondition=&quot;integratedMode&quot; verb=&quot;*&quot; path=&quot;Reserved.ReportViewerWebControl.axd&quot; type=&quot;Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&quot; /&gt; to the system.webServer/handlers section for Internet Information Services 7 or later.</p>

有人吗?

谢谢。

【问题讨论】:

  • 你是在system.webServer部分添加这个吗?

标签: asp.net vb.net iis-7 reportviewer


【解决方案1】:

当我遇到这个问题时,我卸载了我安装的每个版本的 ReportViewer,然后重新安装了 ReportViewer-2010 并重新配置了 web.config。你试过吗?

另外,您是否在 UserControl 中加载 ReportViewer?像这样,

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<NMBSReportViewer.Models.SelectedReport>" %>
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
<form id="Form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<rsweb:ReportViewer ID="ReportViewer1" runat="server" AsyncRendering="false" Height="480px" Width="100%" />
</form>
<script runat="server">
    /* Prepare the ReportViewer Control to be Displayed */
    private void Page_Load(object sender, System.EventArgs e)
    {
        //Create/Get the Connection String
        String ConnectionString = @"Data Source = localhost\SQLEXPRESS; Initial Catalog = School; Trusted_Connection=True;";

        //Create the Connection
        System.Data.SqlClient.SqlConnection DbConn = new System.Data.SqlClient.SqlConnection(ConnectionString);

        //Open the Connection
        DbConn.Open();

        //Reset Control.
        ReportViewer1.Reset();

        //Load Report Definition. 
        //Mine is from a string to load from a file do the following:
        //ReportViewer1.LocalReport.ReportPath = "FilePath";
        System.IO.StringReader reader = new System.IO.StringReader(this.Model.ReportDefinition);
        ReportViewer1.LocalReport.LoadReportDefinition(reader);

        //Query String
        String QueryString = this.Model.Query[i];

        //Create the SqlCommand Object
        System.Data.SqlClient.SqlCommand QueryCommand = new System.Data.SqlClient.SqlCommand(QueryString, DbConn);

        //Use the SqlCommand to create the DataReader Object.
        System.Data.SqlClient.SqlDataReader QueryCommandReader = QueryCommand.ExecuteReader();

         //Create the Datatable.
         System.Data.DataTable DataT = new System.Data.DataTable();

         //Load the Data into the Table.
         DataT.Load(QueryCommandReader);

         //Load Report Data.
         ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource(dataSet.DataSetName, DataT));

        //Refresh Control.
        ReportViewer1.LocalReport.Refresh();
}
</script>

【讨论】:

  • 我改变了我的答案,我记得有这个问题只是可以记住我修复它的方式,我希望这会有所帮助。我删除了 page_load 函数并得到了类似的结果。
猜你喜欢
  • 1970-01-01
  • 2017-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-20
  • 1970-01-01
  • 2023-03-29
相关资源
最近更新 更多