我正在编写一些代码,我的公司以前的开发人员试图将 ReportViewer 添加到 ASP.NET C# 页面。当我开始调试时,我得到以下信息。

 Parser Error Message: The base class includes the field 'ReportViewer1', but its type
(Microsoft.Reporting.WebForms.ReportViewer) is not compatible with the type of control
(Microsoft.Reporting.WebForms.ReportViewer).

我读了一些文章,表明我的引用文献可能很旧。我正在引用 Microsoft.ReportViewer.WebForms 9.0.0.0.
我在不同的页面、同一个项目中有一个 ReportViewer,它正在工作。当我更改对 WebForms 10.0.0.0 的引用时,它会以类似的消息中断。为了让它再次工作,我必须改回 9.0.0.0 并放回我进行此更改之前的 web.config

要让所有 ReportViewers 工作,我是否需要在 9.0.0.0 或 10.0.0.0 上,我是否需要对 web.config 进行更改?

这是两个报告查看器。我没有看到任何与他们不同的相关内容。

今天在 page1.aspx 的 9.0.0.0 下工作
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Height="515px" ProcessingMode="Remote" Width="100%" Visible="false">
    <ServerReport ReportServerUrl="http://servername/reportserver" />
</rsweb:ReportViewer>

在 page2.aspx 中无法在 9.0.0.0 或 10.0.0.0 下工作
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana"
    Font-Size="8pt" ProcessingMode="Remote"
    WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt">
    <ServerReport ReportServerUrl="http://servername/reportserver" />
</rsweb:ReportViewer>

最佳答案

我不得不在 page2.aspx 中更改以下行

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


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

我想要吸取的教训是从引用到其余代码(包括 web.config)保持所有版本的编号相同。

关于c# - ReportViewer 调试错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19931723/

10-11 18:21