【问题标题】:Unable to view SQL Server mobile report in asp.net report viewer无法在 asp.net 报表查看器中查看 SQL Server 移动报表
【发布时间】:2017-02-16 01:11:44
【问题描述】:

我无法在 UI 发布按钮单击和 aspx 中看到报告查看器控件,我在设计视图中收到以下错误消息。

Error Creating Control - ReportViewer1Failed to create designer 'Microsoft.Reporting.WebForms.ReportViewer, Microsoft.ReportViewer.WebForms, 
Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

ASPX:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ExportReportToPDF.aspx.cs"
Inherits="ExportReportss.ExportReportToPDF" EnableEventValidation="false" %>

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, 
PublicKeyToken=b03f5f7f11d50a3a"
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="form1" runat="server">
    <br />
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:Button ID="btnGetReport" runat="server" Text="GetReport"     OnClick="btnGetReport_Click" />
        <rsweb:ReportViewer ID="ReportViewer1" runat="server">
        </rsweb:ReportViewer>
    </div>
</form>
</body>
</html>

代码背后:

public partial class ExportReportToPDF : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void btnGetReport_Click(object sender, EventArgs e)
    {
        try
        {
            ReportViewer1.ProcessingMode = ProcessingMode.Remote;
            ReportViewer1.ServerReport.ReportServerUrl = new Uri("http://Modile/Reports");
            ReportViewer1.ServerReport.Refresh();
        }
        catch (Exception ex)
        {

        }
    }        
}

在 web.config 文件中,我在 system.webServer 标签下添加了以下几行

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

我无法访问我在此处使用的 URL (http://Modile/Reports),但不确定是否是问题所在。谁能帮我这个?

【问题讨论】:

标签: c# asp.net .net reportviewer


【解决方案1】:

我找到了解决方案,问题出在我使用的报告查看器版本 10 上。我还尝试了报表查看器 12,但它仍然无法正常工作。但是 reportviewer 版本 11 运行良好,我们可以在下面的链接中获得它们。

 https://www.microsoft.com/en-in/download/details.aspx?id=35747

我们需要在 web 配置文件中添加这个程序集标签。

<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" />
    <add assembly="Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
    <add assembly="System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
</assemblies>

在我们拖放报表查看器控件后,在 aspx 页面中注册程序集将如下所示。

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

【讨论】:

    【解决方案2】:

    如果您的 Visual Studio 版本是 4.6,则从参考中添加 Microsoft.ReportViewer.WebForms 12.0.0.0 和 Microsoft.ReportViewer.WinForms 12.0.0.0 的参考,并将注册程序集版本更改为 12.0.0.0。

    在 aspx 页面中,它将如下所示:

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

    在 web.config 中:

    <system.web>
    <httpHandlers>
      <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
        validate="false" />
    </httpHandlers>
    <assemblies>
        <add assembly="Microsoft.ReportViewer.WebForms, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
        <add assembly="Microsoft.ReportViewer.Common, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
        <add assembly="Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
    </assemblies>
    <buildProviders>
        <remove extension=".rdlc" />
        <add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    </buildProviders>
    </system.web>
    
    
    <system.webServer> 
      <handlers>
      <remove name="ReportViewerWebControlHandler"/>
      <add name="Reenter code hereportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
      </handlers>
     </system.webServer>
    

    【讨论】:

    • 我的VS版本是4.5
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 2017-08-21
    • 2017-08-04
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多