1

我在这里报告了确切的问题,一切似乎都很好。这是我的 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>

任何人?

谢谢。

4

1 回答 1

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>
于 2012-11-28T17:55:00.723 回答