当前位置:编程学习 > C#/ASP.NET >>

asp.net 水晶报表直接打印输出,在调试状态下正常,运行状态下没有反映 XP + VS005

在调试环境下运行都正常,能直接打印出来,但是直接运行,看效果后,
就什么异常信息也没有,也不出错,就是没反应,而且运行比较慢一些。
我怀疑是 myReportDocument.PrintToPrinter(1, false, 0, 0);
这个语句在调试环境下有权限访问打印机,但是在运行环境下,没有权限
访问打印机,所以在 Web.config 文件中 增加了一行 
<identity impersonate="false"/>
但是还是没能成功打印输出表表,有谁结果过类似问题没有?谢谢帮助

BaseDBConnection myDBConnection = new BaseDBConnection();
myDBConnection.Open();
BUReceive myBUReceive = new BUReceive(myDBConnection);
DataTable myDataTable = myBUReceive.Get(this.ReceiveID);
string pageTitle = "宁波市教育局督办通知单";
string reportPath = "~/Modules/Official/Report/";
string reportFile = Server.MapPath(reportPath) + "ReportSupervise.rpt";
ReportDocument myReportDocument = new ReportDocument();
myReportDocument.Load(reportFile);
myReportDocument.SetDataSource(myDataTable);
myReportDocument.ParameterFields["PageTitle"].CurrentValues.AddValue(pageTitle);
myReportDocument.PrintToPrinter(1, false, 0, 0);
myDBConnection.Close(); --------------------编程问答-------------------- --------------------编程问答-------------------- 现在在 xp下遇到这样的问题, 在 win2003上部署,能正常运行,但是无法直接调用服务器端打印
不报什么错误,也没什么提示,就是不会打印出来,无任何效果。

水晶报表真的是好闹心啊,折腾了整整一天了,还没能弄出来通过 asp.net c#,直接在服务器上打印输出报表,
想让 myReportDocument.PrintToPrinter(1,   false,   0,   0);  
这一行代码起作用还真难啊,我是怕了xp,更服了CrystalReports,折腾呀折腾呀。

找到了参考文件:
http://msdn.microsoft.com/library/cht/default.asp?url=/library/CHT/crystlmn/html/crtskprintingreportsfromtheserver.asp

Q 184291 是费了挺大劲儿找到了,
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q184/2/91.asp&NoWebContent=1
Q 152451 还没找到。


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

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

源错误: 


行 697:            {
行 698:                BUBaseException.Instance.LogException(myDBConnection, this.myBUOperatorInfo, myException);
行 699:                throw myException;
行 700:            }
行 701:            finally
 

源文件: e:\Jirisoft\Jirisoft.Official\Modules\Official\Receive\ReceiveContent.aspx.cs    行: 699 

堆栈跟踪: 


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

[TypeInitializationException: “CrystalDecisions.CrystalReports.Engine.ReportDocument”的类型初始值设定项引发异常。]
   Jirisoft.Official.ReceiveContent.Print() in e:\Jirisoft\Jirisoft.Official\Modules\Official\Receive\ReceiveContent.aspx.cs:699
   Jirisoft.Official.ReceiveContent.btnPrint_Click(Object sender, EventArgs e) in e:\Jirisoft\Jirisoft.Official\Modules\Official\Receive\ReceiveContent.aspx.cs:709
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1746

 
--------------------编程问答-------------------- 本来,xp上除了直接打印还能运行来着,折腾了几下 web发布后,连在本地的水晶报表也不行运行了
现在只能在 win2003上,还能正常运行。

[FileNotFoundException:   检索   COM   类工厂中   CLSID   为   {11BD5260-15B6-412D-80DB-12BB60B8FE50}   的组件时失败,原因是出现以下错误:   8007007e。] 

可能是自己做的发布包哪里不正常引起了以上的错误。 --------------------编程问答-------------------- 在服务器上增加了本地打印机
然后还按 微软知识库 Q184291 的设置进行了注册表配置
然后增加了程序代码,指定了服务器上的打印机
myReportDocument.PrintOptions.PrinterName = "HP LaserJet 5100 PCL 6";
在调试阶段,不设置PrinterName也可以正常运行,在发布状态感觉是必须要这是一样。
才在 win2003上正常运行了,真是要命,现在在xp上的问题还没有解决。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,