ASP.NET环境下发布带有水晶报表的程序的问题!急!!!

时间:2020-12-14 21:01:07
我的程序里有水晶报表,在发布时需要包含哪些东西?我开发用的机器上装了CrystalReport9.2.0.448,在测试服务器上没有装,但所需的几个dll文件都已经包含在了项目中并加以引用。在我的机子上没有问题,但在测试机上发布时,出现如下错误。
我照着别人说的方法试了一下:

——————————————————————————
分发应用程序时,须确定您的安装中所需要的 Crystal Decisions 文件。您要包括的文件取决于是否在报表中使用图表、地图和其他公式语言函数,同时也取决于报表所用的数据源以及您希望向最终用户提供的导出选项。幸运的是,如果您在使用 Microsoft Installer (MSI),则可以在您的安装包中包括的合并模块 (MSM) 以简化分发。

MSI 合并模块可在“C:\Program Files\Common Files\Merge Modules”目录中找到。根据您正在分发的组件和语言,您可选用不同的合并模块。这些合并模块分为三类:托管组件、数据库访问和密钥号码。

托管组件 MSM 处理所有托管组件的分发,其中包括 Windows 窗体查看器、Web 窗体查看器和所有 Crystal Decisions 命名空间。对于使报表运行所需的所有其他文件,由数据库访问 MSM 处理其分发。其中包括数据库、导出和图表驱动程序。KeyCode MSM 处理 Crystal Decisions 密钥号码的安装,这样您的用户在查看报表时,就不会被要求注册他们的 Crystal 版本。

通过将这些合并模块包括在 MSI 项目中,运行报表所需的所有文件都将会随您的安装程序正确分发。下面是各种语言的 MSM 文件名列表。

语言 托管组件 数据库访问 KeyCode 
简体中文 managed.msm 
managed_chs.msm
 database_access.msm 
database_access_chs.msm
 regwiz.msm 

————————————————
  
    我把这几个文件包含在了项目中,重新编译,上传到服务器,结果还是不行。不知道是哪里错了?





错误信息:
“/”应用程序中的服务器错误。
------------------------------------------------------------------------

找不到文件或程序集名称“CrystalKeyCodeLib”,或找不到它的一个依赖项。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.IO.FileNotFoundException: 找不到文件或程序集名称“CrystalKeyCodeLib”,或找不到它的一个依赖项。

源错误: 


行 41:         private static System.Collections.ArrayList __fileDependencies;
行 42:         
行 43:         public ProductRepair_PagePrint_aspx() {
行 44:             System.Collections.ArrayList dependencies;
行 45:             if ((ASP.ProductRepair_PagePrint_aspx.__intialized == false)) {
 

源文件: C:\WINNT\Microsoft.NET\Framework\v1.0.3705\Temporary ASP.NET Files\root\dd9c4377\6ff2712b\fccg9_vy.0.cs    行: 43 

程序集加载跟踪: 下列信息有助于确定程序集“CrystalKeyCodeLib”无法加载的原因。


=== Pre-bind state information ===
LOG: DisplayName = CrystalKeyCodeLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=692fbea5521e1304
 (Fully-specified)
LOG: Appbase = file:///D:/drp
LOG: Initial PrivatePath = bin
Calling assembly : (Unknown).
===

LOG: Publisher policy file is not found.
LOG: No redirect found in host configuration file (C:\WINNT\Microsoft.NET\Framework\v1.0.3705\aspnet.config).
LOG: Using machine configuration file from C:\WINNT\Microsoft.NET\Framework\v1.0.3705\config\machine.config.
LOG: Post-policy reference: CrystalKeyCodeLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=692fbea5521e1304
LOG: Attempting download of new URL file:///C:/WINNT/Microsoft.NET/Framework/v1.0.3705/Temporary ASP.NET Files/root/dd9c4377/6ff2712b/CrystalKeyCodeLib.DLL.
LOG: Attempting download of new URL file:///C:/WINNT/Microsoft.NET/Framework/v1.0.3705/Temporary ASP.NET Files/root/dd9c4377/6ff2712b/CrystalKeyCodeLib/CrystalKeyCodeLib.DLL.
LOG: Attempting download of new URL file:///D:/drp/bin/CrystalKeyCodeLib.DLL.
LOG: Attempting download of new URL file:///D:/drp/bin/CrystalKeyCodeLib/CrystalKeyCodeLib.DLL.
LOG: Attempting download of new URL file:///C:/WINNT/Microsoft.NET/Framework/v1.0.3705/Temporary ASP.NET Files/root/dd9c4377/6ff2712b/CrystalKeyCodeLib.EXE.
LOG: Attempting download of new URL file:///C:/WINNT/Microsoft.NET/Framework/v1.0.3705/Temporary ASP.NET Files/root/dd9c4377/6ff2712b/CrystalKeyCodeLib/CrystalKeyCodeLib.EXE.
LOG: Attempting download of new URL file:///D:/drp/bin/CrystalKeyCodeLib.EXE.
LOG: Attempting download of new URL file:///D:/drp/bin/CrystalKeyCodeLib/CrystalKeyCodeLib.EXE.

 

堆栈跟踪: 


[FileNotFoundException: 找不到文件或程序集名称“CrystalKeyCodeLib”,或找不到它的一个依赖项。]
   CrystalDecisions.CrystalReports.Engine.ReportDocument.@() +0
   CrystalDecisions.CrystalReports.Engine.ReportDocument.InternalInit() +69
   CrystalDecisions.CrystalReports.Engine.ReportDocument..ctor() +56
   CrystalDecisions.CrystalReports.Engine.ReportClass..ctor() +65
   PLP.Reports.ProductRepair_Doc..ctor() in C:\Inetpub\wwwroot\PLP\REPORTS\ProductRepair_Doc1.cs:21
   PLP.Reports.ProductRepair_PagePrint..ctor() in C:\Inetpub\wwwroot\PLP\REPORTS\ProductRepair_PagePrint.aspx.cs:27
   ASP.ProductRepair_PagePrint_aspx..ctor() in C:\WINNT\Microsoft.NET\Framework\v1.0.3705\Temporary ASP.NET Files\root\dd9c4377\6ff2712b\fccg9_vy.0.cs:43

[TargetInvocationException: 调用的目标发生了异常。]
   System.RuntimeType.CreateInstanceImpl(Boolean publicOnly) +0
   System.Activator.CreateInstance(Type type, Boolean nonPublic) +66
   System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +277
   System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +109
   System.Web.UI.TemplateControlParser.GetCompiledInstance(String virtualPath, String inputFile, HttpContext context) +175

[HttpException (0x80004005): 未能创建类型为“ASP.ProductRepair_PagePrint_aspx”的页。]
   System.Web.UI.TemplateControlParser.GetCompiledInstance(String virtualPath, String inputFile, HttpContext context) +349
   System.Web.UI.PageParser.GetCompiledPageInstance(String virtualPath, String inputFile, HttpContext context) +43
   System.Web.UI.PageHandlerFactory.GetHandler(HttpContext context, String requestType, String url, String path) +14
   System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, String path, String pathTranslated, Boolean useAppConfig) +174
   System.Web.MapHandlerExecutionStep.Execute() +77
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +173

 

Who can help me ! Thanks!

17 个解决方案

#1


up up

#2


xuexi

#3


制作部署项目时,点在项目上点击右键,添加程程序集
CrystalReportPluginLib
CryStalPluginMgrlib
CrystalKeyCodeLib
CrystalInfoStoreLib
CrystalEnterpriseLib
CrystalDecisions.Windows.form
CrystalDecisions.Web
CrystalDecisions.Shared
CrystalDecisions.ReportSource
CrystalDecisions.CrystalReport
并且添加->合并模块
DataBase_Access.msm
Datbase_Access_chs.msm
Managed_chs.msm
regwiz.msm
Vc_CRT.msm
VC_STL.msm
添加文件:
你的报表名如111.rpt
            222.rpt
xsd 文件 如111.xsd
           222.xsd
项目输出:
很简单了,自己搞定吧 依赖项会自己生成

#4


添加程序集?就是把几个dll文件包含到项目中去吧!我是引用的几个dll文件,并且复制本地属性为TRUE,和你说的一样吧!
怎样“添加->合并模块”?菜单中可没有这东西,是不是就是把几个msm文件象普通文件一样添加到项目中?我是这样做的,可是还不行啊?
我都在测试服务器上装上CrystalReport9了,可是还是有错!怎么办啊!
我的时间不多了... ...

#5


在regwiz.msm的属性里有一个Lencency key填入以一号码就可以了
AAP5G-KS0000G-CN10082

#6


怎么填啊?文件属性里没有这东西啊?(无论是文件属性还是在开发环境下右键点击它的属性)

#7


在安装工程的解决方案资源管理器里找到这个文件,再按右按选属性,而不是在文件属性里

#8


没有啊?我的是web工程,不是windows工程。
在解决方案资源管理器里找到这个文件,右键点击属性,出现的是这些东西:
——————————————————————
高级:
  生成操作             无
  自定义工具          
  自定义工具命名空间
杂项:
  完整路径             C:\Inetpub\wwwroot\PLP\MSM\regwiz.msm
  文件名               regwiz.msm
——————————————————————

#9


regwiz.msm的属性里有mergemoduleproperties一项,点开其左边的加号...

#10


thinkway(思想者):
你有到底有没有建一个部署项目啊?

#11


能说详细一点吗?

#12


我是没有...
“新建” -> “项目” -> “安装和部署项目”下有“安装项目”、“web安装项目”、“合并模块项目”、“安装项目”、“cab项目”等好几个,我该用哪个啊?然后又怎么办?

#13


....安装项目


这里说得很详细:
http://expert.csdn.net/Expert/topic/1412/1412690.xml?temp=.4913141
http://expert.csdn.net/Expert/topic/1400/1400909.xml?temp=.0320856

其实我也碰上你所说的问题,不过是在win form下。。
而且没有解决,因为我找不到这个文件:
C:\Program Files\Common Files\Merge Modules\DotNETCrystalReports.msm

#14


以前的问题没有了,取而代之的是下面的错误,这又是怎么回事?我的license key没错啊!



“/CREvironment”应用程序中的服务器错误。
--------------------------------------------------------------------------------

因为未能在分配的时间内获得免费许可证,所以 Crystal Reports 作业失败。可以直接从 Crystal Decisions 或通过 Crystal Decisions 在线商店购买更多的许可证。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: CrystalDecisions.CrystalReports.Engine.OutOfLicenseException: 因为未能在分配的时间内获得免费许可证,所以 Crystal Reports 作业失败。可以直接从 Crystal Decisions 或通过 Crystal Decisions 在线商店购买更多的许可证。

源错误: 

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  

堆栈跟踪: 


[OutOfLicenseException: 因为未能在分配的时间内获得免费许可证,所以 Crystal Reports 作业失败。可以直接从 Crystal Decisions 或通过 Crystal Decisions 在线商店购买更多的许可证。]
   .K(String 
, EngineExceptionErrorID ) +290
   .G(String , Int32 ) +56
   CheckLicenseStatus() +153
   CrystalDecisions.CrystalReports.Engine.ReportDocument.0(String w, OpenReportMethod x, Int16 y) +261
   CrystalDecisions.CrystalReports.Engine.ReportClass.0(String O, OpenReportMethod P, Int16 Q) +442
   CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSource(Object value) +263
   drp.KC.PrintReport.KC_Print_Export.Page_Load(Object sender, EventArgs e) in C:\Inetpub\wwwroot\PLP\REPORTS\KC_Print_Export.aspx.cs:94
   System.Web.UI.Control.OnLoad(EventArgs e) +67
   System.Web.UI.Control.LoadRecursive() +29
   System.Web.UI.Page.ProcessRequestMain() +724

 


--------------------------------------------------------------------------------
版本信息: Microsoft .NET 框架版本:1.0.3705.0; ASP.NET 版本:1.0.3705.0

#15


http://expert.csdn.net/Expert/topic/1438/1438801.xml?temp=.1186487
回复人: a9706103(桃花岛主) 
...
4)打开解决方案-->右键点击regwiz.msm的属性,在“MergeMouduleProperties”里的“License Key”填入:AAP5GKS0000GDE100DS(这个是你生成Crystal Report是用到的注册号的密码!)

#16


你按他们说的加上许可证,试一试

#17


谢谢各位!

#1


up up

#2


xuexi

#3


制作部署项目时,点在项目上点击右键,添加程程序集
CrystalReportPluginLib
CryStalPluginMgrlib
CrystalKeyCodeLib
CrystalInfoStoreLib
CrystalEnterpriseLib
CrystalDecisions.Windows.form
CrystalDecisions.Web
CrystalDecisions.Shared
CrystalDecisions.ReportSource
CrystalDecisions.CrystalReport
并且添加->合并模块
DataBase_Access.msm
Datbase_Access_chs.msm
Managed_chs.msm
regwiz.msm
Vc_CRT.msm
VC_STL.msm
添加文件:
你的报表名如111.rpt
            222.rpt
xsd 文件 如111.xsd
           222.xsd
项目输出:
很简单了,自己搞定吧 依赖项会自己生成

#4


添加程序集?就是把几个dll文件包含到项目中去吧!我是引用的几个dll文件,并且复制本地属性为TRUE,和你说的一样吧!
怎样“添加->合并模块”?菜单中可没有这东西,是不是就是把几个msm文件象普通文件一样添加到项目中?我是这样做的,可是还不行啊?
我都在测试服务器上装上CrystalReport9了,可是还是有错!怎么办啊!
我的时间不多了... ...

#5


在regwiz.msm的属性里有一个Lencency key填入以一号码就可以了
AAP5G-KS0000G-CN10082

#6


怎么填啊?文件属性里没有这东西啊?(无论是文件属性还是在开发环境下右键点击它的属性)

#7


在安装工程的解决方案资源管理器里找到这个文件,再按右按选属性,而不是在文件属性里

#8


没有啊?我的是web工程,不是windows工程。
在解决方案资源管理器里找到这个文件,右键点击属性,出现的是这些东西:
——————————————————————
高级:
  生成操作             无
  自定义工具          
  自定义工具命名空间
杂项:
  完整路径             C:\Inetpub\wwwroot\PLP\MSM\regwiz.msm
  文件名               regwiz.msm
——————————————————————

#9


regwiz.msm的属性里有mergemoduleproperties一项,点开其左边的加号...

#10


thinkway(思想者):
你有到底有没有建一个部署项目啊?

#11


能说详细一点吗?

#12


我是没有...
“新建” -> “项目” -> “安装和部署项目”下有“安装项目”、“web安装项目”、“合并模块项目”、“安装项目”、“cab项目”等好几个,我该用哪个啊?然后又怎么办?

#13


....安装项目


这里说得很详细:
http://expert.csdn.net/Expert/topic/1412/1412690.xml?temp=.4913141
http://expert.csdn.net/Expert/topic/1400/1400909.xml?temp=.0320856

其实我也碰上你所说的问题,不过是在win form下。。
而且没有解决,因为我找不到这个文件:
C:\Program Files\Common Files\Merge Modules\DotNETCrystalReports.msm

#14


以前的问题没有了,取而代之的是下面的错误,这又是怎么回事?我的license key没错啊!



“/CREvironment”应用程序中的服务器错误。
--------------------------------------------------------------------------------

因为未能在分配的时间内获得免费许可证,所以 Crystal Reports 作业失败。可以直接从 Crystal Decisions 或通过 Crystal Decisions 在线商店购买更多的许可证。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: CrystalDecisions.CrystalReports.Engine.OutOfLicenseException: 因为未能在分配的时间内获得免费许可证,所以 Crystal Reports 作业失败。可以直接从 Crystal Decisions 或通过 Crystal Decisions 在线商店购买更多的许可证。

源错误: 

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  

堆栈跟踪: 


[OutOfLicenseException: 因为未能在分配的时间内获得免费许可证,所以 Crystal Reports 作业失败。可以直接从 Crystal Decisions 或通过 Crystal Decisions 在线商店购买更多的许可证。]
   .K(String 
, EngineExceptionErrorID ) +290
   .G(String , Int32 ) +56
   CheckLicenseStatus() +153
   CrystalDecisions.CrystalReports.Engine.ReportDocument.0(String w, OpenReportMethod x, Int16 y) +261
   CrystalDecisions.CrystalReports.Engine.ReportClass.0(String O, OpenReportMethod P, Int16 Q) +442
   CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSource(Object value) +263
   drp.KC.PrintReport.KC_Print_Export.Page_Load(Object sender, EventArgs e) in C:\Inetpub\wwwroot\PLP\REPORTS\KC_Print_Export.aspx.cs:94
   System.Web.UI.Control.OnLoad(EventArgs e) +67
   System.Web.UI.Control.LoadRecursive() +29
   System.Web.UI.Page.ProcessRequestMain() +724

 


--------------------------------------------------------------------------------
版本信息: Microsoft .NET 框架版本:1.0.3705.0; ASP.NET 版本:1.0.3705.0

#15


http://expert.csdn.net/Expert/topic/1438/1438801.xml?temp=.1186487
回复人: a9706103(桃花岛主) 
...
4)打开解决方案-->右键点击regwiz.msm的属性,在“MergeMouduleProperties”里的“License Key”填入:AAP5GKS0000GDE100DS(这个是你生成Crystal Report是用到的注册号的密码!)

#16


你按他们说的加上许可证,试一试

#17


谢谢各位!