水晶报表部署出现的问题----在线等

xiongjianxin520 2009-04-08 11:30:56
“/gzgj”应用程序中的服务器错误。
--------------------------------------------------------------------------------

检索 COM 类工厂中 CLSID 为 {11BD5260-15B6-412D-80DB-12BB60B8FE50} 的组件时失败,原因是出现以下错误: 800736b1。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Runtime.InteropServices.COMException: 检索 COM 类工厂中 CLSID 为 {11BD5260-15B6-412D-80DB-12BB60B8FE50} 的组件时失败,原因是出现以下错误: 800736b1。

源错误:


行 25: DataTable dt = (DataTable)Session["dt1"];
行 26:
行 27: ReportDocument rd = new ReportDocument();  //创建报表对象
行 28: string path = Server.MapPath("Contract_Number.rpt");  
行 29: //@"D:\DZGJ\Microlink\gzgj\CrystalReport.rpt"


源文件: d:\hosting\wwwroot\educ.e-trading.com.cn\gzgj\Contract_Number.aspx.cs 行: 27

堆栈跟踪:


[COMException (0x800736b1): 检索 COM 类工厂中 CLSID 为 {11BD5260-15B6-412D-80DB-12BB60B8FE50} 的组件时失败,原因是出现以下错误: 800736b1。]
CrystalDecisions.CrystalReports.Engine.ReportDocument..cctor() +182

[TypeInitializationException: “CrystalDecisions.CrystalReports.Engine.ReportDocument”的类型初始值设定项引发异常。]
CrystalDecisions.CrystalReports.Engine.ReportDocument..ctor() +0
Contract_Number.Page_Load(Object sender, EventArgs e) in d:\hosting\wwwroot\educ.e-trading.com.cn\gzgj\Contract_Number.aspx.cs:27
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +33
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +47
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1436




--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.1433; ASP.NET 版本:2.0.50727.1433
...全文
292 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Archeer 2009-07-19
  • 打赏
  • 举报
回复
为什么微软不用自己的报表系统,像VBA中的很好用,偏要用人家的,而且麻烦一大堆,都影响到我们用C#的热情上了。什么事情都好解决,就是这个该死的水晶报表。
lxlongnw 2009-05-13
  • 打赏
  • 举报
回复
以下是最近作完一个项目在使用水晶报表后的总结,可供参考:
整个使用和发布水晶报表的过程:
1.新建一个Dataset,在Dataset中建你所要的表Table
2.将建好的Dataset做为数据源模板,构建想要的水晶报表样式,该报表文件可暂命名为:CrySJBB.rpt
2.写“Select”的SQL语句,注意:Table中的字段一定要在所写的语句中的字段找得到!
3.为报表赋数据源并加载该报表,代码可如下:
//reportPath为报表路径,下面会谈起怎么取的。
reportDocument1.Load(reportPath);
reportDocument1.SetDataSource(数据源);
CryReViewer.ReportSource = reportDocument1;
4.注:加载该报表时的路径一定不能用网上所说的取应用程序下的相对路径,因为那样在发布后是找不到报表路径的.
5.报表文件CrySJBB的路径rptreportPath的取法:
(1).将建好的报表文件CrySJBB放在某工程下(也可以放在应用程序下,这里以应用程序为例)的Resources资源文件中,这一点应该会添加吧。(点开Properties下的Resources.resx,双击它,点击里头的“添加资源”的“添加现有文件”即可)
(2).写代码,去取得该Resources资源文件下的报表文件,这样做,不但是运行程序还是发布程序,都能自动去找到报表文件。(我这是C/S模式,B/S模式也可以这样做,只是将取得报表文件后的路径重新设置一下就可以了)
using System.Resources;//引用命名空间;

string AppPath = Application.StartupPath; //C/S模式下下载客户端到本地的应用程序路径;
string RptFileFullName = AppPath + @"\CrySJBB.rpt"; //假定取得报表文件后的路径;
//取得Resources资源文件下的报表文件,ZJFF应用程序名
ResourceManager resources = new ResourceManager(typeof(ZJFF.Properties.Resources));
byte[] bytes = (byte[])resources.GetObject("CrySJBB");//只写报表名称,不带后缀

if (File.Exists(RptFileFullName)) //若假定路径中有该文件,则删除,否则新建一个
File.Delete(RptFileFullName);
FileStream fileStream = new FileStream(RptFileFullName, FileMode.CreateNew);
BinaryWriter binWriter = new BinaryWriter(fileStream);
binWriter.Write(bytes, 0, bytes.Length);
binWriter.Close();
fileStream.Close();
reportPath = RptFileFullName;
reportPath 就是最后我们要取得路径,即服务器上已下载到本地后的报表路径,加载这个路径就可以查看我们已经做好的水晶报表了。
6.在发布时,不需要网上所说的合并模块之类,哪些根本没啥用处,因为在C/S模式下,以后程序升级时,用合并模块的话是不会自动查找是否有新版本的程序并且自动升级的。
发布步骤:
(1).点击应用程序的【属性】
(2).点击【发布】项中的【系统必备】,选择其中的.NET Framework 2.0 和Crystal Report for .NET Framework 2.0两项就可以了,
(3).然后点击发布向导,一步一步进行直至完成,或者填写其他项直接点击立即发布,这样发布就完成了!
春天的气息 2009-04-09
  • 打赏
  • 举报
回复
把水晶报表的模块安装到部署的服务器上就可以了。vs2005下带的有。在vs2003时,可以合并模块,但在2005就不好用。
阿泰 2009-04-08
  • 打赏
  • 举报
回复
你部署的时候没有使用水晶报表合并模块吧?

看一下
http://www.cnblogs.com/babyt/archive/2008/08/29/1279569.html
xiongjianxin520 2009-04-08
  • 打赏
  • 举报
回复
高手都来看看了
xiongjianxin520 2009-04-08
  • 打赏
  • 举报
回复
好的,我试试看了,Babyt能不能留下你的联系方式,QQ OR MSN OR GTALK 都可以
阿泰 2009-04-08
  • 打赏
  • 举报
回复
因为你本地有水晶报表的环境( VS2005里带的)啊。
单纯的.net framework安装包里是不包含水晶报表组件的。
xiongjianxin520 2009-04-08
  • 打赏
  • 举报
回复
恩,好的,我看看,但是我本地没有这种问题哦

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧