CrystalDecisions.Web参考版本在运行webapp时突然发生变化

时间:2012-12-18 21:01:33

标签: asp.net crystal-reports

我正在解决这个问题,我有一个webapp,它有一个使用水晶报告的报告,在开发pc中工作正常,但是当我将同一个项目复制到另一台PC时,我加载项目时(VS 2003)出现以下消息:

One or more projects in solution need to be updated to use Crystal Reports XI Release 2. If you choose "Yes", the update will be applied permanently...

我选择“是”,然后我可以看到CrystalDecisions.Web引用具有正确的版本和位置,根据开发机器,在这种情况下:11.5.3300.0。

但是当运行webapp时,我可以看到版本和路径突然变为:11.0.3300.0。

在尝试查看报告时,会出现以下错误:

分析器错误消息:基类包含“CrystalReportViewer1”字段,但其类型(CrystalDecisions.Web.CrystalReportViewer)与控件类型(CrystalDecisions.Web.CrystalReportViewer)不兼容。

asp.net具有以下内容:

<%@ Register TagPrefix="cr" Namespace="CrystalDecisions.Web" Assembly="CrystalDecisions.Web, Version=11.5.3300.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" %>

这怎么可能?这里发生了什么?

修改 这就是我所做的:

错误的版本(11.0.3300.0)位于: C:\Program Files\Common Files\Business Objects\3.0\managed

和正确的版本(11.5.3300.0)位于: C:\Program Files\Business Objects\Common\3.5\managed

所以我刚刚删除了错误解决方案的文件,并且我在新计算机上运行了,运行webapp时没有更多错误,报告显示正常。

但是当尝试在生产服务器中执行相同的操作时,会出现另一个错误,现在是一个例外:

This report could not be loaded due to the following issue: The type initializer for 'CrystalDecisions.CrystalReports.Engine.ReportDocument' threw an exception.

现在知道可能导致此错误的原因是什么?

以下是代码:

Try
            Dim cr As New ReportDocument
            cr.Load(strpath)
            cr.SetDatabaseLogon("user", "pwd")
            Select Case rt
                Case 1
                    cr.SummaryInfo.ReportTitle = "RMA Ticket"
                Case 2
                    cr.SummaryInfo.ReportTitle = "Service Ticket"
            End Select
            'cr.SummaryInfo.ReportTitle = tt
            cr.SetParameterValue("TicketNo", tn)
            'cr.SummaryInfo.ReportComments = comment
            CrystalReportViewer1.PrintMode = CrystalDecisions.Web.PrintMode.ActiveX
            CrystalReportViewer1.ReportSource = cr
            CrystalReportViewer1.ShowFirstPage()
            'cr.Close()
            'cr.Dispose()
        Catch ex As Exception
            MsgBox1.alert("This report could not be loaded due to the following issue: " & ex.Message)
        End Try

2 个答案:

答案 0 :(得分:0)

.dll可能存在一些问题。 尝试更新甚至从解决方案中删除.dll并再次链接。

答案 1 :(得分:0)

我认为每个人都有关于此事的噩梦:\

在我的情况下,Bussiness View Manager未完全安装。成功安装后,报告显示完美。