我有一个应用程序可以生成一些非常基本的报告。我为visual studio 2010安装了水晶报告.net 4 beta 2,并将DLL复制到我网站的bin文件夹中。在本地运行时一切正常,但当我尝试在生产服务器上创建报告时,我会抛出以下异常。
Retrieving the COM class factory for component with CLSID
{C0D87D96-8D57-4274-AA18-D465E31F901E} failed due to the following error:
80040154 Class not registered (Exception from HRESULT: 0x80040154
(REGDB_E_CLASSNOTREG)).
这是堆栈跟踪:
[COMException (0x80040154): Retrieving the COM class factory for component with CLSID
{C0D87D96-8D57-4274-AA18-D465E31F901E} failed due to the following error: 80040154
Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).]
CrystalDecisions.CrystalReports.Engine.ReportDocument..cctor() +141
[TypeInitializationException: The type initializer for
'CrystalDecisions.CrystalReports.Engine.ReportDocument' threw an exception.]
CrystalDecisions.CrystalReports.Engine.ReportDocument..ctor() +0
view_report.UpdateReport(Object sender, EventArgs e) +120
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +118
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +112
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563
我没有做过很多关于水晶报告的内容,所以可能会有一些我遗漏的东西,但是我不得不手动将我的GAC中的DLL复制到我的应用程序bin文件夹中,因为我不想运行安装程序生产。当我从web.config中删除dll加载时,一切都在本地工作,所以我的网站会在Bin中查找任何其他dll,但我不知道为什么会出错。
任何人都有见解?
编辑:
我还在服务器上安装了部署运行时,以确定是否存在问题。
答案 0 :(得分:0)
在联系水晶报告用户的论坛后,看起来你只能在你的生产机器上安装.net 4运行时,因为这对我来说是不可行的,我不得不向下迁移到3.5以使一切正常。< / p>