如何修复asp.net运行时错误

时间:2011-09-13 20:30:04

标签: c# asp.net

所以我有一个页面可以显示各种报告。当我使用旧报告运行应用程序时,此工作正常。但是,当我使用新版本的报告运行应用程序时,我收到此错误。

        ASP.NET runtime error: The base class includes the field 'reportViewer',
     but its type (CrystalDecisions.Web.CrystalReportViewer) 
    is not compatible with the type of control 
(CrystalDecisions.Web.CrystalReportViewer).

从我收集的内容中寻找此错误的解决方案,它与运行不同版本或更新版本的CR(Crystal Reports)有关。但据我所知,我没有更改或更新CR。

我在web.config中存储的用于我使用水晶报告的参考的版本是:

<add assembly="CrystalDecisions.Web, Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.Shared, Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.ReportSource, Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.Enterprise.Framework, Version=12.0.1100.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.Enterprise.Desktop.Report, Version=12.0.1100.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.ReportAppServer.Controllers, Version=12.0.1100.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.CrystalReports.Engine, Version=12.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.ReportAppServer.DataDefModel, Version=12.0.1100.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.Enterprise.InfoStore, Version=12.0.1100.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
    <add assembly="CrystalDecisions.Enterprise.Viewing.ReportSource, Version=12.0.1100.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>

前一个开发人员提供的解决方案是手动修改.csproj文件并将版本#替换为版本12的正确版本。虽然这导致我出错而无法找到VS System.Web.Extentions.dll。

所以我想知道的是,我的申请究竟出了什么问题,我该如何纠正这个问题。

2 个答案:

答案 0 :(得分:3)

我认为第一步应该是卸载开发机器上的每个版本的水晶,并且只安装与服务器上存在的完全相同的水晶。

如果之前的开发人员说要手动修改.csproj,那么你可能会有错误的版本,或者你有多个版本,并且它在某个地方变得混乱。

答案 1 :(得分:0)

当我的应用程序加载两次相同的程序集时,我收到了类似的错误消息。我想我们正在使用CAB来加载程序集。在某些时候,CAB所需的程序集列表包含每个程序集两次,一次是8.3文件名格式,再次是长文件名格式。 CAB认为它们是不同的组件并加载它们。我不记得是怎么回事。但是当我们确定上面的问题消失了。