愁:应用程序中的服务器错误

tidegirl 2009-06-25 06:14:24
“/jycx”应用程序中的服务器错误。
--------------------------------------------------------------------------------

Failed to open report.
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Runtime.InteropServices.COMException: Failed to open report.

源错误:


行 79: {
行 80: myReport ReportDoc = new myReport();
行 81: ReportDoc.SetDataSource(ds);
行 82: Crv.ReportSource = ReportDoc;
行 83: }


源文件: f:\webs\jycx\accerror\accerrorreport.aspx.cs 行: 81

堆栈跟踪:


[COMException (0x800003e5): Failed to open report.]
CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options) +0
CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options) +87
CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +279

[Exception: 加载报表失败。]
CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +341
CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob) +869
CrystalDecisions.CrystalReports.Engine.ReportClass.Load(String reportName, OpenReportMethod openMethod, Int16 parentJob) +1140
CrystalDecisions.CrystalReports.Engine.ReportDocument.EnsureLoadReport() +97
CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSourceInternal(Object val, Type type) +42
CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSource(DataSet dataSet) +55
kh.accerror_accerrorreport.Page_Init(Object sender, EventArgs e) in f:\webs\jycx\accerror\accerrorreport.aspx.cs:81
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +34
System.Web.UI.Control.OnInit(EventArgs e) +2069676
System.Web.UI.Page.OnInit(EventArgs e) +9
kh.accerror_accerrorreport.OnInit(EventArgs e) in f:\webs\jycx\accerror\accerrorreport.aspx.cs:98
System.Web.UI.Control.InitRecursive(Control namingContainer) +321
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +692



服务器上装的是水晶报表的安装包CRRedist2005_x86.msi,程序是正常的.
今天加装了中文CRREdist2005_x86_chs.msi,测试时还是正常的,后来改了一下myReport.rpt文件,就突然显示上述情况了。
连带别的报表文件都产生一样的提示。把后来改动的文件删除掉后,没改动过的别的报表文件还是这样报错。
而这些程序在本机(安装了.net2005的开发环境)都是正常的。
难道是中文补丁的问题?

...全文
103 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tidegirl 2009-06-26
  • 打赏
  • 举报
回复
代码都在Page_Init里
阿泰 2009-06-26
  • 打赏
  • 举报
回复
那你的新sql执行,放进去了吗
tidegirl 2009-06-26
  • 打赏
  • 举报
回复
第一页显示正常,点击下一页的时候,第二页也显示正常,可是在点击下一页的时候,却还显示第二页,然后点击最后一页,出现的就是最后一页,可是再接着点击前一页的时候竟然是第一页,中间的几页看不到呢, 但是输入页面后可以看到。

解决方法:

一般我们是把水晶报表绑定代码放到Page_load事件的,现在将水晶报表绑定代码放在Page_Init事件中即可.


我的代码都放到Page_Init里了,没有Page_load。
阿泰 2009-06-26
  • 打赏
  • 举报
回复
这应该是你的这个sql没有在page_load里执行吧,结果打印和导出的时候就没有跟踪到。
这个得看代码,

特别是sql出现的地方和page_load事件
tidegirl 2009-06-26
  • 打赏
  • 举报
回复
昨天把后来修改的报表目录及有关文件都删掉了,发现别的报表依然报同样错误。早上一来,又运行正常了,不知道是否缓存的问题。

一上午的艰苦摸索,终于发现一个SQL语句的地方导致导出打印不成功,提示“系统找不到指定的路径”。
select A.* from A inner join B on A.id=B.id where B.字段='" + 变量+ "' order by A.id


把where B.字段='" + 变量+ "'这句去掉,不用这个条件查了,导出打印就成功了。程序再放到服务器上,运行正常,导出打印也正常了。

总结,所有报表基本都是在 A 的sql语句中以A表里字段为查询条件,只有这里出现了一个以B表字段为查询条件的情况,虽然SQL语句查询数据正常,但导出打印找不都路径的提示就是出在这个查询的地方,不知道是不是其它问题也源于这里,不知道怎样修改。
shuifengcun 2009-06-26
  • 打赏
  • 举报
回复
试下TEMP的权限
阿泰 2009-06-26
  • 打赏
  • 举报
回复
... 晕。。。

今天早上晕了好几次了我。。
tidegirl 2009-06-26
  • 打赏
  • 举报
回复
今天早上来,运行又正常了,太奇怪了。
嗷嗷叫的老马 2009-06-26
  • 打赏
  • 举报
回复
路过.......
gwf25sz 2009-06-25
  • 打赏
  • 举报
回复
不太清楚,重装一遍试试~!

4,818

社区成员

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

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