点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我使用的是13_0_23,有时会通过下面的调用堆栈在我的应用中发生非托管崩溃。
我们正在Windows 10(x64)上运行,但使用的是32位.Net进程。
是否有可能是24或25个已知/已修复的问题?
谢谢!
> mfc140u.dll!ATL :: CSimpleStringT
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我使用的是13_0_23,有时会通过下面的调用堆栈在我的应用中发生非托管崩溃。
我们正在Windows 10(x64)上运行,但使用的是32位.Net进程。
是否有可能是24或25个已知/已修复的问题?
谢谢!
> mfc140u.dll!ATL :: CSimpleStringT
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我使用的是13_0_23,有时会通过下面的调用堆栈在我的应用中发生非托管崩溃。
我们正在Windows 10(x64)上运行,但使用的是32位.Net进程。
是否有可能是24或25个已知/已修复的问题?
谢谢!
> mfc140u.dll!ATL :: CSimpleStringT
SP 23有很多Viewer问题,请尝试SP 25。
我已更新到SP25,但不幸的是仍然遇到相同的问题。
我对此进行了更多测试,并且我相信我已将原因归结为ReportClass构造函数(实际上是ReportDocument或它的基础,因为ReportClass的反编译代码看起来很安全)中的争用条件和/或 SetDataSource()方法。 到目前为止的轶事测试表明,当我对这些活动应用独占访问锁时,崩溃消失了。
因此,为了解决这个问题,我创建了一个单元测试,该单元测试创建了30个任务,每个任务都将创建一个报告对象并将PDF保存到磁盘。 运行测试时,我发现失败率约为15%。 到目前为止,在我使用同步锁进行的有限测试中,我还没有遇到崩溃。
这对于单元测试并不是真正有用,因为失败场景是导致过程中断的非托管崩溃,因此不会导致断言失败或类似失败。 但这对于自动化测试非常有用。
基本单元测试结构:
var task = new List();
for(int i = 0; i <30; ++ i)
{
tasks.Add(新任务(
()=>
{
//报告服务有一些包装器内容,但是出于本讨论的目的,它收集数据以填充数据集,构造报告对象,将数据集馈入报告并呈现pdf。
var response = _reportService.GenerateReport();
Assert.IsNotNull(response);
}
));
}
tasks.Each(x => x.Start());
tasks.Each(x => x.Wait());
用于构建报告/保存到磁盘的基本相关代码:
MyReport rpt;
lock(SyncRoot)////-删除同步锁会导致非托管崩溃。
{
rpt = new MyReport();
rpt.SetDataSource(reportData.DataSet);
}
foreach(reportParams中的KeyValuePair条目)
{
rpt.SetParameterValue(entry.Key,entry.Value);
}
rpt.ExportToDisk(request.CrystalFormatType,fileName);
rpt.Close();
rpt.Dispose();
也许您正在与此相反:
https://blogs.sap.com/2014/04/25/what-exactly-is- 晶体报告的最大报告处理工作限制/
请参阅上述问题的最新评论。
谢谢你的建议。 您知道何时/如何开始报告引擎限制吗? 它是否与在报表对象的构造函数或SetDataSource()方法中具有多个线程有关? 我猜想它应该在ExportToDisk()方法中,但是我不确定。
对于我在这里运行的报告测试场景,我传入的数据集也是空的,在页眉/页脚元素中仅使用了十几个参数。 没有子报告。
一周热门 更多>