我使用Crystal Reports在我的ASP Web项目中打印PDF文件。当我在VS中调试并发布项目时,打印功能是正确的,但是当我将项目放入计算机中的IIS时出现错误。
我试图抑制数据库的干扰。我只是使用带有文本且没有数据的空水晶报表。我还尝试在C#桌面应用程序中使用相同的报告和相同的代码。打印功能正确。
我的项目中有一些代码:
private void OutExportExcel_WJKP()
{
// load
string reportPath = "D:\\fileCode\\VSworkspace\\LJZY\\LJZY.WEB\\Reports\\CrystalReport11.rpt";
CrystalDecisions.CrystalReports.Engine.ReportDocument rptDoc =
new CrystalDecisions.CrystalReports.Engine.ReportDocument();
rptDoc.Load(reportPath);
// print
rptDoc.PrintToPrinter(1, false, 0, 0);
}
预期结果:弹出一个窗口,确认要打印PDF报告。
实际结果:错误信息和代码段如下所示:
注释:错误信息由我翻译。因为我不知道如何更改错误信息的语言。错误的原始信息如下图所示。
enter image description here
“ /”应用程序中的服务器错误。
找不到指定的程序。
注意:在执行当前Web请求期间发生未处理的异常。检查堆栈跟踪信息以获取有关错误以及错误在代码中何处产生的详细信息。
异常详细信息:System.ComponentModel.Win32Exception:找不到指定的程序。
源错误:
第134行:
第135行://打印
第136行:rptDoc.PrintToPrinter(1,false,0,0);
137行:}
138行:
源文件:D:\ fileCode \ VSworkspace \ LJZY \ LJZY.WEB \ Page \ DownLoad \ DownLoad.aspx.cs行:136
堆栈跟踪:
[Win32Exception(0x80004005):找不到指定的程序。]
System.Drawing.Printing.StandardPrintController.OnStartPrint(PrintDocument文档,PrintEventArgs e)+242489
System.Drawing.Printing.PrintController.Print(PrintDocument文档)+208
System.Drawing.Printing.PrintDocument.Print()+111
CrystalDecisions.CrystalReports.Engine.FormatEngine.PrintToPrinter(Int32 nCopies,布尔归类,Int32 startPageN,Int32 endPageN)+469
CrystalDecisions.CrystalReports.Engine.ReportDocument.PrintToPrinter(Int32 nCopies,布尔归类,Int32 startPageN,Int32 endPageN)+73
D:\ fileCode \ VSworkspace \ LJZY \ LJZY.WEB \ Page \ DownLoad \ DownLoad.aspx.cs:136
中的LJZY.WEB.Page.DownLoad.DownLoad.OutExportExcel_WJKP() D:\ fileCode \ VSworkspace \ LJZY \ LJZY.WEB \ Page \ DownLoad \ DownLoad.aspx.cs:54
中的LJZY.WEB。 LJZY.WEB.Page.DownLoad.DownLoad.Page_Load(对象发送方,EventArgs e)在D:\ fileCode \ VSworkspace \ LJZY \ LJZY.WEB \ Page \ DownLoad \ DownLoad.aspx.cs:43
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender,EventArgs e)+51
System.Web.UI.Control.OnLoad(EventArgs e)+95
System.Web.UI.Control.LoadRecursive()+59
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+678
版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.7.3282.0