我用.net4.0在vs2010中创建了一个水晶报告.当我发布网站时,它会抛出错误"由JRC引擎处理的文档无法在C++堆栈中打开".我在服务器上发布了这个网站,我正在尝试从客户端访问它,我确实在app_code中记录了.rpt文件,但又一次得到了同样的错误.所以我创建了一个文件夹wwwroot,在该文件夹中我保存了asp_client和网站文件夹,并给了wwwroot的物理路径.一切正常,除了水晶报告.在.cs文件代码如下:
ReportDocument rptDoc = new ReportDocument();
DataSetForCrystalReport ds = new DataSetForCrystalReport();
DataSetForCrystalReport dsHeader = new DataSetForCrystalReport();
DataTable dt = new DataTable();
DataTable dtHeader = new DataTable();
dt.TableName = "dtBill";
string ReceiptNo = Request.QueryString["ReceiptNo"];
dt = getAllOrders(ReceiptNo).Tables[0];
dtHeader = TblcompanysettingsService.GetOrganizationDetails();
ds.Tables[1].Merge(dt);
ds.Tables[2].Merge(dtHeader);
rptDoc.Load(Server.MapPath("crBill.rpt"));
rptDoc.SetDataSource(ds);
CrystalReportViewer1.ReportSource = rptDoc;
Run Code Online (Sandbox Code Playgroud)
堆栈错误的痕迹:
[COMException (0x80041811): Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ stack.]
CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options) +0
CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options) +147
CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +422
[CrystalReportsException: Load report …Run Code Online (Sandbox Code Playgroud)